我把数据库中的一个表绑定到一个datagrid(在这个表单中是用Adodc来连接数据库的)中;当进行添加记录时,弹出一个新的对话框实现。我现在想实现添加记录的功能,并且添加之后在datagrid中能显示出新添加的记录。数据库用的是Access。
我在添加对话框的确定的click事件中编程如下:
Private Sub Command1_Click()
  Dim cn As ADODB.Connection
  Dim rs As ADODB.Recordset
  Dim strcnn As String
  strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=c:\jxc.mdb;Persist Security nfo=False"
  Set cn = New ADODB.Connection//在这句出错,连接数据库不成功!
  cn.Open strcnn
  Set rs = New ADODB.Recordset
  rs.CursorLocation = adUseClient
  rs.CursorType = adOpenKeyset
  rs.LockType = adLockOptimistic
  If Trim(Text1.Text) = "" Then
    MsgBox "请输入编号!", vbOKOnly + vbExclamation, "警告"
    Text1.SetFocus
    Exit Sub
  Else
    rs.Open ("select * from jxc_gys")
    While (rs.EOF = False)
      If Trim(rs.Fields(0)) = Trim(Text1.Text) Then
        MsgBox "编号已存在,请重新输入编号!", vbOKOnly + vbExclamation, "警告"
        Text1.SetFocus
        Text1.Text = ""        
      Else
        mrc.MoveNext
      End If
    Wend
  End If
  rs.AddNew
  rs.Fields(0) = Trim(Text1.Text)   
  rs.Update 
  rs.Close
  cn.Close
  MsgBox "添加供应商信息成功!", vbOKOnly + vbExclamation, "添加用户"
  Unload Me
End Sub
  上面的代码不能打开数据库,不知道是代码的问题,还是VB本身的问题,我的VB是从网上下载的一个精装版。
  添加记录时连接数据库还有别的好办法吗?请帮忙解决,先谢谢了!

解决方案 »

  1.   

    tztz520(午夜逛街) :你说的“引用”指的是这句吗?strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=c:\jxc.mdb;Persist Security nfo=False",我也不知道应该用什么,我建了Access数据库,在c盘根目录,然后创建了ODBC数据源,名字为jxc,是不是上面这句话不对啊?
      

  2.   

    装VB完整板就行,精简板的在98中用DATA控件都有问题,别说OLEDB了
      

  3.   

    先在project 的references中选中"MicroSoft Dao 3.6 Object Library"
    然后按以下方法定义对象和连接
    Dim Conn As Database
    Dim rs As Recordset
    Dim strSql As String
    Set Conn = DBEngine.OpenDatabase("c:\jxc.mdb")
    strSql = "select * from jxc_gys"
    Set rs = Conn.Execute(strSql)
    While Not rs.eof
    rs![字段名]=xxxxxxxx
    rs.Movenext
    Wend
      

  4.   

    LyricSean(云烟):我用你的方法试了,Set rs = cn.Execute(strsql)这句有问题,提示“缺少函数或变量”,是怎么回事啊?请指教,谢谢!
      

  5.   

    strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=c:\jxc.mdb;Persist Security info=False"
      

  6.   

    aliang_2008(乖乖虎):需要引用什么啊,是“云烟”说的那个吗?
      

  7.   

    sorry  把那句改成
    Set rs = Conn.OpenRecordset(strSql)
    就ok了