为了修改数据,采用Book方法,但发现没有达到效果:
思路:
先获取 选定数据的 标签:
WIS_Search_MDB_Str = "Select * from TModuleList where ToolType ='" & Trim(Select_ToolInfo_ToolType) & "' and ItemName='" & Mid(Select_ToolInfo_ToolModule, 1, InStr(Select_ToolInfo_ToolModule, "@") - 1) & "'"
Set WIS_Base_Rs = WIS_Base_Connect(WIS_Search_MDB_Str)
tem_BookMark = WIS_Base_Rs.Book修改的时候,再将标签赋值给 数据库:
WIS_Base_Rs.Book = tem_BookMark
With WIS_Base_Rs
.Fields(1).Value = Trim(txtNewName.Text)
.Fields(2).Value = Trim(txtAbbrName.Text)
.Fields(3).Value = Mid(comType.Text, 1, 1)
.Fields(4).Value = Trim(txtComment.Text)
.Update
.Close
End With但是修改的并非所选定的 数据..而是其他的..
能否帮忙看看什么地方出了问题?
谢谢

解决方案 »

  1.   

    Set WIS_Base_Rs = WIS_Base_Connect(WIS_Search_MDB_Str)WIS_Base_Rs定义了记录集吗?如果db是Connect,一般需要作以下工作:set db=new connect
    db.open constr    'constr为数据库连接字符串
    Set WIS_Base_Rs =db.execute(WIS_Search_MDB_Str) 
      

  2.   

    标签、游标这类东西已经过时了⋯⋯
    最好不要用了。
    修改时直接用SQL 的Update语句要好很多,不管是稳定性还是效率。
      

  3.   

    tem_BookMark 是在哪定义的?
    WIS_Base_Rs是recordset对象?
    WIS_Base_Connect(WIS_Search_MDB_Str)是你自己的自定义函数?
    cursorlocation是否是aduseclient?
      

  4.   

    Private tem_BookMark As String'Base Info DB
    Public WIS_Base_Con As New ADODB.Connection
    Public WIS_Base_Rs As New ADODB.Recordset'********************************
    'Access 数据库连接  基本信息数据库 的链接/
    Public Function WIS_Base_Connect(ByVal txtSQL As String) As ADODB.Recordset
    On Error GoTo ErrCode
    Dim WIS_ConnectName As StringWIS_ConnectName = WIS_Base_DataBaseConnectName & ";"Set WIS_Base_Con = New ADODB.Connection
    WIS_Base_Con.Open "provider=microsoft.jet.OLEDB.4.0;data source= " & WIS_ConnectName & ";Jet OLEDB:Database Password = E054pd"Set WIS_Base_Rs = New ADODB.Recordset
    WIS_Base_Rs.Open txtSQL, WIS_Base_Con, adOpenKeyset, adLockPessimistic
    Set WIS_Base_Connect = WIS_Base_RsErrCode:
        Select Case Err.Number
        Case 0
        Case cdlCancel
        Case Else
            MsgBox Err.Description & vbCrLf & vbCrLf & "Base Info DataBase File Error,Can't Operated!" & vbCrLf & "Pls Check the Database or Contact Admin", vbCritical, Err.Number
        End Select
    End Functioncursorlocation为默认
      

  5.   


    定义就错了
    Private tem_BookMark As String==>Private tem_BookMark As variant
      

  6.   


    WIS_Base_Rs.Open txtSQL, WIS_Base_Con, adOpenKeyset, adLockPessimistic本地游标不支持 adOpenKeyset, adLockPessimistic这两个参数,但是VB会自动修正,问题不大
    主要原因应该是书签数据类型错误,跳转到错误陷阱,没有执行书签设置操作!
    另外,cursorlocation最好明确设置
      

  7.   

    Private tem_BookMark As variant 已经修正
    另外如果
    WIS_Base_Rs.CursorLocation = adUseClient 或者 =adUseServer 
    则无法正常连接数据..不知道是为什么?