with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
     sLan:='Insert into data (Date) VALUES (' ;
     sLan:=sLan+'#2006-10-3#'
     +')';
     SQL.Add(sLan);
     ExecSQL;
     Close;
  end;  始终都要说,SQL语句出错

解决方案 »

  1.   

    with adoquery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('insert into table(rq) values(:#rq)');
        Parameters.ParamByName('#rq').Value := FormatDateTime('yyyy-mm-dd',Date);
        ExecSQL;
      end;
    一般的方法就是上面的注意你sLan:='Insert into data (Date) VALUES (' ;字段名不要用到关键字,如果用到了用[]括起来
      

  2.   

    with ADOQuery1 do
      begin
        Close;
        SQL.Clear;
         sLan:='Insert into data (Date) VALUES (' ;
         sLan:=sLan+'#2006-10-3#'
         +')';
         SQL.Add(sLan);//---->此处设置断点,把sql语句拿出来放到access中执行看是否错误就知道了。
         ExecSQL;
         Close;
      end;
      

  3.   

    它的问题是出在关键字上面,Access中Date是关键字,改个字段名字吧!
      

  4.   

    sLan:='Insert into [data] (Date) VALUES (' ;修改成这样。
      

  5.   

    我测试的时候用的是test数据库,只有一个字段timedo,呵呵,没有用到Date字段名,你的字段名是关键字,改掉就可以了.
      

  6.   

    xjjrocker(了无痕)  太谢谢了,你的一句话,提醒了我,我没有设置关键字,只不过我把字段名写成 "date" 改了就行了呀,这个问题你不晓得,把我郁闷惨了
      

  7.   

    呵呵,access数据库操作有两个问题很容易犯错,一个就是日期查询需要#,一个就是关键字的问题要避免.
      

  8.   

    就是,他太难伺候了,我一般都用SQL SERVER,这回第一次用他,我已散分了,thank you very much