我最近编了个小程序,需要采用VB界面控制ACCESS数据库,ACCESS数据库内有9张表,但是奇怪的是所有连接方式、读取、修改及添加命令采用相同,只有其中一个表内的数据只能添加、读取而不能修改,另外8张表都能正常实现读取、修改及添加。
敢问大侠们,这有可能是什么问题?
由于公司电脑加密了,命令考不上来。

解决方案 »

  1.   

    程序运行时没有任何报错
    只是在修改数据后点击存储按钮,再打开数据库,原来要修改的那一行没有变化
    但是如果向表里添加一行数据的话,点击保存后,查看数据库里面就成功添加了一行数据Public Sub Command3_Click()’保存按钮 
    On Error Resume Next 
    adoRS5.MoveFirst 
     
    Dim xchoose As VbMsgBoxResult 
    Dim i As Integer 
    For i = 0 To adoRS5.RecordCount - 1 
    On Error Resume Next 
            If adoRS5.Fields("CP-BH").Value = Form1.Text1(3).Text Then 
                  xchoose  =  MsgBox("此产品编号的电压比和移相角数据已经存在,是否覆盖?", 
    vbYesNo, "注意") 
                  Select Case xchoose 
                      Case vbYes 
                      Xorsave = False 
                           
                          Call AdoAdd5 
                           
                          MsgBox "电压比和移相角数据数据保存完成!"
                          Form7.Command1.Enabled = True 
                          bc5 = 1 
                          Exit Sub 
                      Case vbNo 
                          Exit Sub 
                  End Select 
            Else 
                  adoRS5.MoveNext 
                   
            End If 
    Next 
    adoRS5.MoveLast 
     
    adoRS5.AddNew 
     
    Call AdoAdd5 
    MsgBox "电压比和移相角单数据保存完成!"
    Form7.Command1.Enabled = True 
    bc5 = 1 
     
    End Sub 这是我的修改及添加保存过程。在建立ACCESS数据库表时,我没有设置任何属性,而且9张表都是一样建立的,只有一样表不能修改,但是可以添加,真是很邪门! 
      

  2.   

    Public Sub AdoAdd5() '存储实验数据---电压比及移相角测量 
    With adoRS5 
       
      If (Form7.Text1(0).Text = "" Or Form7.Text1(0).Visible = False) Then 
      .Fields(0).Value = "/" 
      Else 
      .Fields(0).Value = Form7.Text1(0).Text 
      End If 
       
      .Fields(1).Value = Form7.Combo1.Text 
       
    For ii = 1 To 108 
      If (Form7.Text1(ii).Text = "" Or Form7.Text1(ii).Visible = False) Then 
        .Fields(1 + ii).Value = "/" 
      Else 
        .Fields(1 + ii).Value = Form7.Text1(ii).Text 
      End If 
    Next 
       
    .Fields("CP-BH").Value = Form1.Text1(3).Text 
     
    End With 
    adoRS5.UpdateBatch adAffectAll 
    End Sub 这是我的代码,请帮我看看怎么回事?已经好几天了都找不原因
      

  3.   

    建议新增用这种方法:
    conn.execute "insert into 表名(...) values(...)"
      

  4.   

    这种方法我没用用过啊。都是用sql语句的 试试用ADO方法 SQL语句 用UPdate试试
      

  5.   

    不是的,是因为此表的字段数量超过了99个,不能实现批量修改,我把表拆成两个表就可以了!呵呵
    ACCESS限制可真多