类模块Public Sub conn()
Public conn As New ADODB.Connection    '定义连接数据库用到变量
Public Connstr As String
Public rs As New ADODB.Recordset
Public sqlstr As String
Connstr = "PROVIDER = Microsoft.Jet.OLEDB.4.0;Data Source= " + App.Path + "\client.mdb;"
conn.Open Connstr
End Sub
以下是窗体的添加按钮的代码
窗体名useraddPrivate Sub cmdadd_Click()
Call conn
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "请输入用户名或者密码", , "提示"
Else
sqlstr = "insert into userinfo (userid,userpwd) values ('" & Text1 & "','" & Text2 & "')"
conn.Execute (sqlstr)
End If
End Sub===========问题:提示这句出错,请问为什么?应该如何解决?
conn.Execute (sqlstr)

解决方案 »

  1.   

    userid是不是数字字段,如是数字字段,则:
    sqlstr = "insert into userinfo (userid,userpwd) values ('" & Text1 & "','" & Text2 & "')"
    应改成:
    sqlstr = "insert into userinfo (userid,userpwd) values (" & Text1 & ",'" & Text2 & "')"
    即去除Text1两边的单引号还有:建议过程名不要定义成与其变量名相同的,这样会引起疑义
      

  2.   

    看的很是别扭,insert into是多表之间的插入,楼主的是同一个表吧?
      

  3.   

    userid是字符型字段吗?如果不是如myhgyp所说不要在两端加'
      

  4.   

    userid是用户帐号,是字符型的,是同一个表.
    cindytsai(笨笨的蔡鸟),同一表的插入不是用insert into吗?哪有什么更好的方法呢?我将程序改为以下,可以正常操作了:模块:
    Public conn As New ADODB.Connection    '定义连接数据库用到变量
    Public Connstr As String
    Public rs As New ADODB.Recordset
    Public sqlstr As StringPublic Sub conndata()
    Connstr = "PROVIDER = Microsoft.Jet.OLEDB.4.0;Data Source= " + App.Path + "\client.mdb;"
    conn.Open Connstr
    End Sub
    窗体:Private Sub cmdadd_Click()
    If Text1.Text = "" Or Text2.Text = "" Then
    MsgBox "请输入用户名或者密码", , "提示"
    Else
    sqlstr = "insert into userinfo (userid,userpwd) values ('" & Text1 & "','" & Text2 & "')"
    conn.Execute (sqlstr)
    End If
    End SubPrivate Sub Form_Load()
    Call conndata
    End Sub大家一般是怎么写入数据的呢?
      

  5.   

    你的连接正常吗??在函数里定义Public类型
      

  6.   

    text1和text2改成text1.text,text2.text