是做在线词典用的。javastricpt按照用户文本框输入查询Access数据库。
这一句怎么也搞不定了,怎么改都不对,痛苦了一天一夜了,求各位大侠请赐教。var mySql = "SELECT * FROM table1 WHERE 发音=form1.txtjiansuo.text";
有朋友回答我说
var mySql = "SELECT * FROM table1 WHERE 发音='" & form1.txtjiansuo.text & "'"; 
可是提示“无效的SQL语句;期待‘delete’、‘insert’、‘procedure’、‘select’或‘update’”。
第一段可以执行。
--------------------------------------------------------------
function zhongying()
{
  var mySql = "SELECT * FROM table1 WHERE 发音='nihao'";
  var recordSet = database.Execute(mySql);
  var tempText = "";
  document.getElementById("dataDisplay").value = "";
  while (!recordSet.EOF)
  {
  tempText = tempText + recordSet(0) + ":" +recordSet(2)+"【" +recordSet(3)+ "】"+ recordSet(4)+ recordSet(5)+"\n";
  recordSet.MoveNext();
  }
  document.getElementById("dataDisplay").value = tempText;
  recordSet.Close();
  recordSet = null;
}
--------------------------------------------------------------
第二段的第一句出错了
(与第一段的区别就第一句,汗...用途是希望将用户在form1,id=txtjiansuo文本框中输入的值检索access表中发音字段)function yingzhong()
{
  var mySql = "SELECT * FROM table1 WHERE 发音=form1.txtjiansuo.text";  var tempText = "";
  var recordSet = database.Execute(mySql);
  document.getElementById("dataDisplay").value = "";
  while (!recordSet.EOF)
  {
  tempText = tempText + recordSet(0) + ":" +recordSet(2)+"【" +recordSet(3)+ "】"+ recordSet(4)+ recordSet(5)+"\n";
  recordSet.MoveNext();
  }
  document.getElementById(dataDisplay).value = tempText;
  recordSet.Close();
  recordSet = null;
}

解决方案 »

  1.   

    var mySql = "SELECT * FROM table1 WHERE 发音=form1.txtjiansuo.text";改成:var mySql = "SELECT * FROM table1 WHERE 发音 = \'form1.txtjiansuo.text\'";
      

  2.   

    var mySql = "SELECT * FROM table1 WHERE 发音 = \'form1.txtjiansuo.text\'";
    单引号前面加上转义符
      

  3.   

    var mySql = "SELECT * FROM table1 WHERE 发音 = \'form1.txtjiansuo.text\'";
    单引号前面加上转义符来试试看
      

  4.   

    非常感谢!现在不报错了,但是不知道为什么结果还没有显示在dataDisplay显示框里面.
    仔细看了下,第二段dataDisplay没有加"",现在加上了,也还是不行.
    document.getElementById(dataDisplay).value = tempText;
    能不能请您再再教教我.万分感谢!
      

  5.   

    谢谢!现在不报错了,但是显示不出结果...为什么呢.
    附html相关部分:
        <form name="form1">
          SEARCH WORD:<input type="text" name="txtjiansuo" id="txtjiansuo">
    还有
       <div id="sqlDisplay"></div>
        <textarea name="dataDisplay" id="dataDisplay" rows="20" cols="50"></textarea>
    请赐教...
      

  6.   

    首先确定dataDisplay能找到
    alert(cument.getElementById(dataDisplay).value);
    其次确定tempText有值
    alert(tempText)
      

  7.   

    首先确定dataDisplay能找到
    alert(cument.getElementById(dataDisplay).value);
    其次确定tempText有值
    alert(tempText)
      

  8.   

    刚刚看见你是textarea 它用cument.getElementById(dataDisplay).innerHTML 
      

  9.   

    汇报如下:
    alert(cument.getElementById(dataDisplay).value);执行失败cument未定义.
    alert(tempText);果然没有值...所以没有结果显示呢...附:执行时候代码是下面这样加的.
    function rizhong()
    {
      var mySql = "SELECT * FROM table1 WHERE 发音 = \'form1.txtjiansuo.text\'";
      var tempText = "";
      var recordSet = database.Execute(mySql);
      document.getElementById("dataDisplay").value = "";
      while (!recordSet.EOF)
      {
      tempText = tempText + recordSet(0) + ":" +recordSet(2)+"【" +recordSet(3)+ "】"+ recordSet(4)+ recordSet(5)+"\n";
      recordSet.MoveNext();
      }
    alert(cument.getElementById(dataDisplay).value);
    alert(tempText);
      document.getElementById("dataDisplay").value = tempText;
      recordSet.Close();
      recordSet = null;
    }
      

  10.   

    刚刚看了下,属性用innerText,innerHTML都可以成功赋值!!当然首选:name和innnerText啦 
    这个兼容ie与火狐
    document.getElementById('bt').innerText="赋值";
      

  11.   

    报告
    alert(document.getElementById(dataDisplay).value);缺少对象
      

  12.   

    没事,谁刚刚开始都这样,慢慢来时间长了就好了!
     这样你首先要确定tempText 它要有值 我现在怀疑你没有进while,所以tempText没有值,你在while里面alert一下,看进while了吗?如果没进再进行调式
    如果现在tempText有值的话
    就用document.getElementById("dataDisplay").innerText= tempText;
    innerText兼容性很好
      

  13.   

    我用下面的位置这样加到while里面了,然后alert也不出来了....
    function rizhong()
    {
      var mySql = "SELECT * FROM table1 WHERE 发音 = \'form1.txtjiansuo.text\'";
      var tempText = "";
      var recordSet = database.Execute(mySql);
      document.getElementById("dataDisplay").value = "";
      while (!recordSet.EOF)
      {
      tempText = tempText + recordSet(0) + ":" +recordSet(2)+"【" +recordSet(3)+ "】"+ recordSet(4)+ recordSet(5)+"\n";
      recordSet.MoveNext();
      alert(document.getElementById(dataDisplay).value);
      alert(tempText);
      }
      document.getElementById("dataDisplay").value = tempText;
      recordSet.Close();
      recordSet = null;
    }
      

  14.   

    while判读写的有问题,应该是没进去
    换成
    (recordSet!=EOF)
      

  15.   

    js 能直接访问数据?
    我没看错吧?还是我out了?
    应该是用active控件操作数据库吧,js只是操作返回的结果而已。
      

  16.   

    我这两天试着改了下,还是不行,有人说是不是因为日语单词文本框和数据库字符格式不匹配,可是我用"nihao"也不出来...一筹莫展啊。