access数据库中有一个表zl,有两列,No,NameNO 存放文本框的index值,Name存放文本框的内容
在文本框中输入一个非空字符,按下enter键,如果数据库中已经存在这个index值,则修改这条记录的name为文本框中的值如果不存在,就新加一条记录如果文本框中的值为XXX,则从数据库中删除这条记录如何实现?
谢谢

解决方案 »

  1.   

    不是我设想的,是这么要求的我的界面上有label控件数组,其caption初始值是XXX,若修改,则按ctrl键加单击,出现文本框,填内容,然后回车,把label的index值和text中的值存进数据库。这个值是可以随意改的。如果再把label的caption值设为XXX,则不用存进数据库因为不是所有的label的caption值都需要改变。
    也就是说,只要label的caption值变的不是XXX了,就要存到数据库里
    程序启动时,就要把这些值读出来显示在界面上
      

  2.   

    先判断是否存在
    connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "你的数据库.mdb"
    adodc1.connectstring=connectstring
    sql = select * from zl where no = '" + text1.text + "'"
    adodc1.RecordSource= sql
    '判断是否存在
    if not adodc1.recordset.eof and not adodc1.recordset.bof then
    adodc1.recordset.fileds("name")=text1.text
    else
    adodc1.recordset.addnew
    ……
    adodc1.recordset.updata
    end if
      

  3.   

    Dim mycom As New ADODB.Command
    Dim f As ADODB.Field
      MyCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
               " Data Source=" & App.Path & _
               "\BaoBao.mdb;Persist Security Info=False"
      MyCon.Open
      
      strsql = "select * from bbao"
      Set mycom.ActiveConnection = MyCon
      mycom.CommandText = strsql
      Set MyRs = mycom.Execute
      MyRs.MoveFirst
      Show
      Do While Not MyRs.EOF
         lblWan(MyRs.Fields("num")).Caption = MyRs.Fields("name")
         
         MyRs.MoveNext
      Loop
    这样做的话,我的数据库里必须存有一条记录才可以启动程序,不然报错.说.bof和.eof只能一个为真.
    应该怎么做,如果是空的也可以启动?
      

  4.   

    Dim mycom As New ADODB.Command
    Dim f As ADODB.Field
      MyCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
               " Data Source=" & App.Path & _
               "\BaoBao.mdb;Persist Security Info=False"
      MyCon.Open
      
      strsql = "select * from bbao"
      Set mycom.ActiveConnection = MyCon
      mycom.CommandText = strsql
      Set MyRs = mycom.Execute
      if myrs.recordcount>0 then 
         MyRs.MoveFirst
         Show
         Do While Not MyRs.EOF
            lblWan(MyRs.Fields("num")).Caption = MyRs.Fields("name")
         
            MyRs.MoveNext
         Loop
       else
         ‘看需要作啥操作 
       end if
      

  5.   

    MyRs.Open "select * from zl " & _
                    "where no='" & zlaa & "'", MyCon, 1, 3  ' & zlaa & "'"    If Not MyRs.EOF And Not MyRs.BOF Then
            MyRs.Fields("name") = wmy
            MyRs.Update
          
        Else
            MyRs.AddNew
            MyRs.Fields("no") = zlaa
            MyRs.Fields("name") = wmy
            MyRs.Update
           
        End If
        MyRs.Close
    这段程序一执行就出问题,是哪的问题?
      

  6.   

    你的程序作以下修改即可    Dim strSql As String
        strSql = "select * from [zl] where [no] =" & zlaa
        Debug.Print strSql
        MyRs.Open strSql, MyCon, 1, 3 ' & zlaa & "'"
    ------------------------------------------------------------
        原来是 
        myRs.open  这一句。