Private Sub BID_BeforeUpdate(Cancel As Integer)
1001 Dim X
1002 If Me.NewRecord = True Then '若为新记录
1003 If IsNull(Me![BID]) = False Then '判断是否为空白
1004 X = DLookup("BID", "Books", "BID Like '" & _
Me![BID] & "'")
1005 If IsNull(X) = False Then
1006 MsgBox "编号重复"
1007 Cancel = True
1008 End If
1009 Else
1010 MsgBox "未输入书籍编号"
1011 Cancel = True
1012 End If
1013 End If
End Sub
另一段代码:
SELECT AllBooks.BID, AllBooks.BNAME, Customers.CusName, Orders.OrderDate, OrderDetail.Price, OrderDetail.Quantity, [QUANTITY]*[PRICE] AS 小计
FROM Customers INNER JOIN ((AllBooks INNER JOIN OrderDetail ON AllBooks.BID = OrderDetail.BID) INNER JOIN Orders ON OrderDetail.OrderID = Orders.OrderID) ON Customers.CusID = Orders.CusID
WHERE (((AllBooks.BID) Like IIf(IsNull([forms]![Book_All]![sbid]),"*",[forms]![Book_All]![sbid])));
要将它改为VBA的查询准则,就必须将其该为字符串,以下是条件WHERE的一种写法:
WHERE BID LIKE '" & ME![SBID] & "' AND SDATE <= #" & ME![INDATE] & "#"
WHERE (BID LIKE '" & ME![SBID] & "' AND SDATE <= #" & ME![INDATE] & "#))OR(BID IS NOT NULL)