在对记录添加时,如何判断新输入的TEXT1(绑定MDB库的表的编号字段)的内容与库中原有的编号字段内容不重复.请详细指教.多谢.

解决方案 »

  1.   

    可以在添加记录前,先查找编号字段为text1的记录,如果有则不添加,没有则添加。
      

  2.   

    rs.open "select * from 表 where 编号=" & text1.text,db,……
    if rs.eof then 
        添加
    else
        不添加
    endif
      

  3.   

    好象不是很好用,往往是在TEXT1中显示一条记录时,我让TEXT.LOSTFOUS是触发该事件,但由于该条记录的编号值与TEXT1是同一值,所以便提示已经重复, 其实未重复.
      

  4.   

    rs.open "select * from 表 where 编号=" & text1.text,db,……
    if not rs.eof then 
       msgbox "编号已经存在,请重新输入!",vbinformation,"提示窗口"
       text1.setfocus
       exit sub
    endif
      

  5.   

    Private Sub Command1_Click()
    On Error GoTo errorHandlerDim adoCnn As ADODB.Connection
    Dim adoRst As ADODB.Recordset
    Dim BeginTransBol As Boolean  '是否已开始一个 ado 事务
    Dim CnnStr As String
    Dim cSql As StringBeginTransBol = False
    CnnRst = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" + [Access97、Access2000 数据库路径及名称] + " ;Persist Security Info=False;Jet OLEDB:Database Password=" + [数据库密码]
    With adoCnn
         If .State = adStateOpen Then .Close
        .ConnectionString = CnnStr
        .Open
         If .State = adStateOpen Then
    '   数据库打开成功
    '   开始一个事物,设置事务的隔离层为 adXactReadCommitted       .IsolationLevel = adXactReadUncommitted ' adXactReadCommitted
           .BeginTrans
            BeginTransBol = True
            
            cSql = "SELECT * FROM 表 WHERE 编号 = " + Text1.Text
            With adoRst
                 If .State = adStateOpen Then .Close
                .ActiveConnection = adoCnn
                .CursorLocation = adUseClient
                .LockType = adLockBatchOptimistic
                .CursorType = adOpenStatic
                .Source = cSql
                .Open
    '            Disconnect the recordset  切断记录集
                 Set .ActiveConnection = Nothing
                If .RecordCount <> 0 Then
                    MsgBox "编号已经存在,请重新输入!", vbInformation, "录入重复窗口 . . ."
                    Text1.SetFocus
                Else
                   .AddNew
                   '开始添加记录
                   .Fields("编号").Value = Text1.Text
                   
                   '...
                   
    '               Reconnect and update Access or SQL Server
                   .ActiveConnection = adoCnn
                   .UpdateBatch
                End If
            End With
           .CommitTrans
            BeginTransBol = False
        Else
    '   数据库打开失败
    '   ...
        End If
        
    End With
    Exit Sub
    errorHandler:
       If adoCnn.State = adStateOpen And BeginTransBol Then adoCnn.RollbackTrans
       MsgBox Err.Description + "(错误号:" + CStr(Err.Number) + ")", vbCritical, "出错拉 . . ."
    End Sub