现在我手上有一个考勤的管理系统.其中有多表.现在我又在其中添加了一个表,并且我希望可以访问这个表.
于是我就在一个新的添加的窗体中对该表进行了访问.代码如下:
Private Sub Cmdsave_Click()
   txtsql = "insert into template(ID,FingerTmplate,Describe)"
    txtsql = txtsql + "values('" + Trim(Combo1.Text) + "','"
    txtsql = txtsql + Trim(TextRegister.Text) + "','" + Trim(Text1.Text) + "')"
    results = ExecuteSQL(txtsql, rstUser, True)
    MsgBox "添加成功!", vbOKOnly + vbExclamation, "警告"
 
End SubExecuteSQL是前面定义的一个SQL语句的执行函数
而我进行多次实验后发现,在我建的新表中根本就不受操作.后来我直接把template去掉,居然不报错,还可以运行.我就不知道为什么了,希望可以得到大家的帮助

解决方案 »

  1.   

    你的问题估计在ExecuteSQL这个函数中,既然它有返回值,你首先 msgbox results,看看有没有返回正确的值
      

  2.   

    去看了提示false,SQL语句没有等到执行.觉得会不会是因为这个后加进去的表原因
      

  3.   

    下面是ExecuteSQL的代码
    Public Function ExecuteSQL(ByVal Sql As String, Rst As ADODB.Recordset, _
    Optional enableWrite As Boolean = True) As Boolean
        Dim con As ADODB.Connection
        Dim sTokens() As String
        On Error GoTo Execute_Error
        sTokens = Split(Sql)
        Set con = New ADODB.Connection
        con.Open ConnectString
        Set Rst = New ADODB.Recordset
        If enableWrite Then
            Rst.Open Trim$(Sql), con, adOpenStatic, adLockOptimistic
        Else
            Rst.Open Trim$(Sql), con, adOpenStatic, adLockReadOnly
        End If
        ExecuteSQL = True
        Exit Function
    Execute_Error:
       ExecuteSQL = False
      Exit Function
    End Function
    我在新的模板定义了一个rstRegister As ADODB.Recordset
    在我的程序中调用了 ExecuteSQL(txtsql, rstRegister, True),希望可以访问新建的数据库,可是总是不能访问.哪位知道这是怎么回事吗?希望可以解答一下
      

  4.   

    ExecuteSQL只是返回记录集,并不能对数据库进行更新
    也就是说,ExecuteSQL不能执行insert into语句,修改ExecuteSQL吧
      

  5.   

    在该系统中,有登陆模块,修改记录的模块,都是调用ExecuteSQL(txtsql, rstRegister, True),我也没有发现有什么其他的,为什么他们都可以成功访问数据库呢?
      

  6.   

    对于那个ExecuteSQL(txtsql, rstRegister, True)函数,书中有如下说明:参数为将要执行的SQL语句,ADO数据rst和是否允许数据集更新的布尔型的布尔变量.处理流程:创建到数据源的连接,根据布尔型变量的实参值,确定执行SQL语句的方式并执行SQL语句.如果SQL语句成功执行,返回值为TRUE,结果存储于与形参数据集RET相对应的实参数据集,否则返回为FALSE
      

  7.   

    快要无语了
    就你上面贴出来的那个ExecuteSQL函数,不作修改,是不可能直接解决你的insert into问题的......
    如果一定要用你的那个ExecuteSQL函数做,那也应该首先用ExecuteSQL返回表template的记录集,然后用addnew方法添加数据!!!