我在模块里定义了如下代码:
Public Function DataIsExists(ByVal FieldName As String, ByVal TableName As String, ByVal FieldValue As String, ByVal FieldType As String) As Boolean
Dim rstPackage As ADODB.Recordset
DataIsExists = False
Set rstPackage = New ADODB.Recordset
Select Case FieldType
Case "String"
rstPackage.Open "Select Top 1 [" & FieldName & "] From [" & TableName & "] Where [" & FieldName & "] = '" & ReplaceSQL(FieldValue) & "'", SystemConn, adOpenStatic, adLockReadOnly, adCmdText
End Select
If rstPackage.RecordCount > 0 Then DataIsExists = True
rstPackage.Close
Set rstPackage = Nothing
End Function
然后,在窗体里编写了以下代码:
If SystemConn = 0 Then
If DataIsExists("Package_ID", "Package_Detail", txtField(0).Text, Data_Str) = True Then
MsgBox "此ID已存在!", vbOKOnly + vbCritical, "套播广告管理"
Exit Sub
End If
End If我的问题是:为什么不管加入的新记录他的ID是不是已经存在,系统仍然提示,"此ID已存在!"哪里出了问题呢?急....
Public Function DataIsExists(ByVal FieldName As String, ByVal TableName As String, ByVal FieldValue As String, ByVal FieldType As String) As Boolean
Dim rstPackage As ADODB.Recordset
DataIsExists = False
Set rstPackage = New ADODB.Recordset
Select Case FieldType
Case "String"
rstPackage.Open "Select Top 1 [" & FieldName & "] From [" & TableName & "] Where [" & FieldName & "] = '" & ReplaceSQL(FieldValue) & "'", SystemConn, adOpenStatic, adLockReadOnly, adCmdText
End Select
If rstPackage.RecordCount > 0 Then DataIsExists = True
rstPackage.Close
Set rstPackage = Nothing
End Function
然后,在窗体里编写了以下代码:
If SystemConn = 0 Then
If DataIsExists("Package_ID", "Package_Detail", txtField(0).Text, Data_Str) = True Then
MsgBox "此ID已存在!", vbOKOnly + vbCritical, "套播广告管理"
Exit Sub
End If
End If我的问题是:为什么不管加入的新记录他的ID是不是已经存在,系统仍然提示,"此ID已存在!"哪里出了问题呢?急....
dim Rs as new adodb.Recordset
Rs.open"select '字段名'FROM '表名' Where 条件",systemconn ,adOpenStatic, adLockReadOnly, adCmdText
if rs.RecordCount>0 then
msgbox"记录存在!"
end if
把这段代码放到你输入ID的文本框失去焦点事件中。就可以了。
Private Sub txtField_LostFocus(Index As Integer)
Dim rstPackage As New ADODB.Recordset
If SystemState = 0 Then
Set rstPackage = New ADODB.Recordset
rstPackage.Open "Select Package_ID From Package_Detail Where Package_ID= ReplaceSQL(txtField(0).text)", SystemConn, adOpenStatic, adLockReadOnly, adCmdText
If rstPackage.RecordCount > 0 Then
MsgBox "记录存在!", vbOKOnly + vbCritical + "套播广告管理"
End If
End If
rstPackage.Close
Set rstPackage = Nothing提示错误:"txtfield"不是可识别的函数名...
rstPackage.Open "Select Package_ID From Package_Detail Where Package_ID= '" & Replace(txtField(0).Text, "", "''") & "'", SystemConn, adOpenStatic, adLockReadOnly, adCmdText
If rstPackage.RecordCount > 0 Then
MsgBox "记录存在!", vbOKOnly + vbCritical, "套播广告管理"
End If但是'" & Replace(txtField(0).Text, "", "''") & "'一直没有成功赋值,请问哪里有问题。.我将次代码放在cmdOK_click窗体下...请各位指点...
如是字段值的话就rs.field(0)