Office中国论坛/Access中国论坛

标题: [问题解除,封贴]调用SQL语句 update出错 [打印本页]

作者: tomuch    时间: 2008-8-14 15:31
标题: [问题解除,封贴]调用SQL语句 update出错
共有两个表:车辆基本信息表(车牌号为主键,且值唯一)、里程调查表,一对多关系。采用主从窗体格式录入,各控件绑定表字段。当在主窗体中录入的车牌号以前曾经录入过(即:车辆基本信息表中已经包含该车牌号的信息)时,此时修改所在地市信息后(在Form_BeforeUpdate事件中更新车辆基本信息表内容),切换到下调记录时,会出现 update调用错误提示,可车辆基本信息表中数据已经修改过来了。而且,有时候会出现主窗体数据已经修改,但是无法用滚轮快速切换记录的问题。请行家指点迷津。谢谢

[attach]31562[/attach]

[ 本帖最后由 tomuch 于 2008-8-15 11:40 编辑 ]
作者: Grant    时间: 2008-8-14 23:27
Private Sub Form_BeforeUpdate(Cancel As Integer)
    Dim cmdStr As String


'    On Error GoTo DealError
    '使用输入的名称执行查询
    Dim objCn As New ADODB.Connection
    Dim objRs As New ADODB.Recordset
   
    Set objCn = CurrentProject.Connection
    If objCn.State = adStateOpen Then
            'MsgBox "mdb已经打开"
    ElseIf objCn.State = adStateClosed Then
        objCn.Open
    End If
   
    Dim Com As New ADODB.Command
   
    cmdStr = "select * from 车辆基本信息表 where 牌照号='" & Me.牌照号 & "'"
    Dim c1 As String
   
    objRs.CursorType = adOpenStatic
    If objCn.State = adStateOpen Then
        objRs.ActiveConnection = objCn
        objRs.Open cmdStr
    End If
    If objRs.RecordCount >= 1 Then
        '更新数据库
        
       Com.ActiveConnection = objCn  'CurrentProject.AccessConnection
       c1 = "set " & " 所在地市 ='" & Me.所在地市 & "'"
        
        
       cmdStr = "update 车辆基本信息表 " & c1 & " where 牌照号='" & Me.牌照号 & "'"
      
       Com.CommandText = cmdStr
       Com.Execute
      
      
       Cancel = True
'       Me.Refresh
      
       Me.里程调查表_子窗体.Requery
      

        
    End If
     Exit Sub    '跳过下面的语句
'DealError:
'    MsgBox "程序运行错误:" & Err.Description

End Sub
作者: tomuch    时间: 2008-8-15 08:57
谢谢Grant版!经过上面的修改,又出现新问题:修改地市名称后,无法切换到别的记录条(用滚轮或上下条记录按钮均失效)。我试着不执行  cancel=true  语句,但是会弹出下面的提示框,还请能帮助找到合适解决方案,谢谢
[attach]31570[/attach]
作者: rcylbx    时间: 2008-9-6 06:33
关注中
作者: tz-chf    时间: 2008-9-6 09:05
窗体和docmd两个都改那当然就....




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3