1) برای ایجاد Table، دو راه دارید:
الف) استفاده از دستور اس کیو ال Create Table که با متد Execute شی Connection قابل اجرا است.
سینتکس دستور Create Table به شکل زیر است:
CREATE TABLE table (field1 type [(size)] [NOT NULL] [index1] [, field2 type [(size)] [NOT NULL] [index2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])
یک مثال در این رابطه:
Cnn.Execute "CREATE TABLE MyTable (FirstName TEXT, LastName TEXT);"
ب) استفاده از ADOX که مخفف Activex Data Objects For Data Definition Language and Security است.
Reference این کتابخانه، Microsoft ADO Ext. 2.7 For DDL and Security است.
یک مثال در این رابطه:
Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\MyDB.mdb;"
With tbl
.Name = "Contacts"
.Columns.Append "StrName", adVarWChar
.Columns.Append "StrFamily", adVarWChar
.Columns.Append "Address", adLongVarWChar
.Columns("Address").Attributes = adColNullable
End With
cat.Tables.Append tbl
Set cat = Nothing
2) در هنگام ایجاد Recordset، نوع قفلی که باید بر روی رکوردها اعمال شود و نحوه دسترسی به آنها باید مشخص شود. (در کد فوق شما این کار را انجام نداده اید!)
مثال:
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\MyDB.mdb;"
RecordSet.Open "Select * From MyTable", Cnn, adOpenKeyset, adLockOptimistic
پیشنهاد می کنم که در اکثر اوقات، Recordset را با تنظیمات فوق ایجاد کنید.
موفق باشید.