建了个student.dsn     DATABASE为pubs中  添加用户窗体:
输入用户名(label1)   text1
输入密码 (label2)    text2
确认密码 (label3)    text3
     确认(command1)
     
窗体代码:Private Sub Command1_Click()
Dim txtsql As String
Dim mrc As ADODB.Recordset
Dim msgtext As String
If Trim(Text1.Text) = "" Then
  MsgBox "请输入用户"
  Exit Sub
  Text1.SetFocus
  Else
   textsql = "select * from userinfo"    '问题1:这个是不是要先建个表userinfo,书里也没说明
   Set mrc = executesql(txtsql, msgtext)    '调用模块代码
   While (mrc.EOF = False)
       If Trim(mrc.Fields(0)) = Trim(Text1) Then
         MsgBox "此用户已存在了"
         Text1 = ""
         Text2 = ""
         Text3 = ""
         Text1.SetFocus
         Exit Sub
         Else
            mrc.MoveNext
        End If
    Wend
End If
If Trim(Text2.Text) <> Trim(Text3) Then
  MsgBox "两次密码不一致"
  Text1.SetFocus
  Text1 = ""
  Text2 = ""
  Text3 = ""
  Else
    If Text2 = "" Or Text3 = "" Then
      MsgBox "密码不能为空"
      Text1.SetFocus
      Text1 = ""
      Text2 = ""
      Text3 = ""
      Else
       mrc.AddNew
       mrc.Fields(0) = Trim(Text1)
       mrc.Fields(1) = Trim(Text2)
       mrc.Update
       mrc.Close
       Me.Hide
       MsgBox "添加成功"
    End If
End If
End Sub模块代码:Public Function executesql(ByVal sql As String, msgstring As String) As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stokens() As String
stokens = Split(sql)
Set cnn = New ADODB.Connection
cnn.ConnectionString = "DSN=student.dsn" & ";DATABASE=pubs"
If InStr("INSERT,DELETE,UPDATE", UCase(stokens(0))) Then     '问题2:执行command1时                                                             提示错误 "下标越界"
   cnn.Execute sql
   msgstring = stokens(0) & "查询成功"
   Else
    Set rst = New ADODB.Recordset
    rst.Open Trim(sql), cnn, adOpenKeyset, adLockOptimistic
    Set executesql = rst
    msgstring = "查询到" & rst.RecordCount & "条记录"
End If
executesql_exit:
  Set rst = Nothing
  Set cnn = Nothing
  Exit Function
End Function问题3:添加用户时,用户添加到哪里去?   书上没有说建表?手上只有10分

解决方案 »

  1.   


       textsql = "select * from userinfo"    '问题1:这个是不是要先建个表userinfo,书里也没说明
       
    ---------------------当然要有表了,书上不可能每一步骤都写的
    ============================If InStr("INSERT,DELETE,UPDATE", UCase(stokens(0))) Then     '问题2:执行command1时                                                             提示错误 "下标越界"
    --------------------
     textsql = "select * from userinfo"    '问题1:这个是不是要先建个表userinfo,书里也没说明
       Set mrc = executesql(txtsql, msgtext)    '调用模块代码第一句是textsql ,传参数是却变成txtsql,所以stokens数组中无数据
    ======================问题3:添加用户时,用户添加到哪里去?   书上没有说建表?新添加用户是放在 userinfo表里的,
      

  2.   

    1、If Trim(Text1.Text) = "" Then
      MsgBox "请输入用户"
      Exit Sub
      Text1.SetFocus2、这边exit sub要放tex1.setfocus的后面!不然那边都无意义了!
    还有,PUBS好象是SQL安装时就有的数据库,里面应该有那个userinfo表,记不太清楚了!不过要使用select * from userinfo就必须要有该表存在!3、你打开的userinfo表,当然是添加到该表了!