Every time you create a recordset, ADO is sending you back lots of information about the data you selected. The complete list of attributes is available in your MSDN Library or online at msdn.microsoft.com. However, one of the easiest ones you can use will tell you whether the field is nullable or not.
Here's an example that determines whether each field in the Northwind Traders Orders table is nullable or not. This code assumes that you've opened up a database connection to the Northwind Traders database.
Set rsData = cnDB.Execute("SELECT * FROM Orders")
For i = 0 To rsData.Fields.Count - 1
Response.Write rsData.Fields(i).Name & " is "
If (rsData.Fields(i).Attributes And adFldIsNullable) Then
Response.Write "nullable."
Else
Response.Write "required."
End If
Response.Write "
" & vbCrLf
Next 'i
For the Orders table, the response to this code is:
OrderID is required.
CustomerID is nullable.
EmployeeID is nullable.
OrderDate is nullable.
RequiredDate is nullable.
ShippedDate is nullable.
ShipVia is nullable.
Freight is nullable.
ShipName is nullable.
ShipAddress is nullable.
ShipCity is nullable.
ShipRegion is nullable.
ShipPostalCode is nullable.
ShipCountry is nullable.
This is an easy way to do validation or to generate client-side validation code. There are additional attributes that you can use that will be covered in later tips.