ADOX - Creazione database, creazione tabelle







Option Explicit


'BINARY 1 byte per carattere

'BIT 1 byte Valori Si' e No e i campi che contengono uno solo dei due valori.

'BYTE 1 byte Un valore intero compreso tra 0 e 255.

'COUNTER 4 byte C O N T A T O R E

'CURRENCY 8 byte Un numero intero proporzionato compreso tra  – 922.337.203.685,477,5808 e 922.337.203.685.477,5807.

'DATETIME (vedere DOUBLE) 8 byte Un valore di data o di ora compreso tra 100 e 9999.

'GUID 128 bit Un numero di identificazione univoco utilizzato con chiamate di routine remote.

'SINGLE 4 byte Precisione singola Un valore a virgola mobile a precisione singola con un intervallo compreso tra  – 3,402823E38 e  – 1,401298E-45 per i valori negativi e tra 1,401298E-45 e 3,402823E38 per i valori positivi e zero.

'DOUBLE 8 byte Precisione doppia Un valore a virgola mobile a precisione doppia con un intervallo compreso tra  – 1,79769313486232E308 e  – 4,94065645841247E-324 per i valori negativi e tra 4,94065645841247E-324 e 1,79769313486232E308 per i valori positivi e zero.

'SHORT 2 byte Un numero intero breve compreso tra  – 32.768 e 32.767.

'LONG 4 byte Intero lungo Un numero intero lungo compreso tra  – 2.147.483.648 e 2.147.483.647.

'LONGTEXT 1 byte per carattere Da zero a un massimo di 1,2 gigabyte.

'LONGBINARY Binario lungo Come necessario Da zero ad un massimo di 1,2 gigabyte. Utilizzato per oggetti OLE.

'TEXT 1 byte per carattere TESTO Da zero a 255 caratteri.





Private Sub cmdCreate_Click()
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Dim con As ADODB.Connection

' Delete the database if it already exists.

On Error Resume Next
Kill txtDatabaseName.Text
On Error GoTo 0


Kill App.Path & "\Vb52000.Mdb"

' Create the new database.

Set cat = New ADOX.Catalog
cat.Create _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\Vb52000.Mdb" & ";"


' Connect to the database.

Set con = cat.ActiveConnection


Dim QR As String
QR = "CREATE TABLE [Autori] ([Autore] char(30), "
QR = QR & "[Societa] char(50), "
QR = QR & "[descrizioneProgetto] MEMO, "
QR = QR & "[Versione] char(12), "
QR = QR & "[data variazione] DATETIME)"
con.Execute QR

' creazione indice

con.Execute "CREATE INDEX Versione ON Autori (Versione);"
con.Execute "CREATE INDEX Data ON Autori ([data variazione]);"


con.Execute "INSERT INTO Autori ( Autore, Societa, descrizioneProgetto, Versione, [data variazione] ) SELECT 'Paolo Puglisi' AS Autore, 'Genio SoftWare' AS Societa, 'Conversione da un progetto di Access 2000 o 97 in un progetto di VB' AS descrizioneProgetto, '2.0.2' AS Versione, Date() AS [data variazione];"



QR = "CREATE TABLE [Tabella] ([IdControl] COUNTER CONSTRAINT IdControl PRIMARY KEY, "
QR = QR & "[IdMaschera] LONG, "
QR = QR & "[Maschera] char(50), "
QR = QR & "[Nome] char(50), "
QR = QR & "[TipoControl] LONG, "
QR = QR & "[Caption] char(50), "
QR = QR & "[Text] char(50), "
QR = QR & "[DataField] MEMO, "
QR = QR & "[RowSourceType] char(50), "
QR = QR & "[RowSource] MEMO, "
QR = QR & "[Left] char(50), "
QR = QR & "[Heigth] char(50), "
QR = QR & "[Top] char(50), "
QR = QR & "[Width] char(50), "
QR = QR & "[Value] char(50), "
QR = QR & "[LinkchildFields] MEMO, "
QR = QR & "[LinkMasterFields] MEMO, "
QR = QR & "[SourceObject] MEMO, "
QR = QR & "[Class] char(50), "
QR = QR & "[Inizialize] MEMO, "
QR = QR & "[Picture] char(150) )"

con.Execute QR

con.Execute "CREATE INDEX Maschera ON Tabella ([IDMaschera]);"

QR = "CREATE TABLE [Maschere] ([IdMaschera] COUNTER CONSTRAINT IdMaschere PRIMARY KEY, "
QR = QR & "[Maschera] char(50), "
QR = QR & "[Menu] char(50), "
QR = QR & "[DatabaseName] MEMO, "
QR = QR & "[Larga] char(50), "
QR = QR & "[DefaultView] char(50), "
QR = QR & "[DataField] MEMO, "
QR = QR & "[Script] MEMO, "
QR = QR & "[Filter] MEMO, "
QR = QR & "[orderBy] char(50), "
QR = QR & "[RecordsetType] char(50), "
QR = QR & "[MinMaxButtons] LONG, "
QR = QR & "[PathDataBase] char(110) )"

con.Execute QR

con.Execute "CREATE INDEX IdMaschera ON Maschere ([IDMaschera]);"
con.Execute "CREATE INDEX Maschera ON Maschere ([Maschera]);"

QR = "CREATE TABLE [Moduli] ([Id] COUNTER CONSTRAINT IdModuli PRIMARY KEY, "
QR = QR & "[Moduli] char(50) )"

con.Execute QR


QR = "CREATE TABLE [Scroll] ([Id] COUNTER CONSTRAINT IdScroll PRIMARY KEY, "
QR = QR & "[Tipo] char(50), "
QR = QR & "[nome] char(50), "
QR = QR & "[BackColor] char(50), "
QR = QR & "[Caption] char(249), "
QR = QR & "[DataSource] char(1), "
QR = QR & "[Datafield] MEMO, "
QR = QR & "[DisplayType] char(50), "
QR = QR & "[ForeColor] char(50), "
QR = QR & "[Height] char(50), "
QR = QR & "[Index] char(50), "
QR = QR & "[Left] char(50), "
QR = QR & "[MaskColor] char(50), "
QR = QR & "[MaxLength] char(50), "
QR = QR & "[MultiLine] char(50), "
QR = QR & "[ScaleMode] char(50), "
QR = QR & "[ScaleHeight] char(50), "
QR = QR & "[ScaleWidth] char(50), "
QR = QR & "[ScrollBars] char(50), "
QR = QR & "[TabIndex] char(50), "
QR = QR & "[Top] char(50), "
QR = QR & "[Visible] char(50), "
QR = QR & "[Width] char(50), "
QR = QR & "[zLeft] LONG, "
QR = QR & "[zTop] LONG )"

con.Execute QR

' con.Execute "CREATE INDEX Id ON Scroll (IDOLD);"

' con.Execute "CREATE INDEX zLeft ON Scroll (zLeft);"

' con.Execute "CREATE INDEX zTop ON Scroll (zTop);"






Set con = Nothing
Set tbl = Nothing
Set cat = Nothing

MsgBox "OK"
End Sub

Private Sub Form_Load()

Dim file_name As String

file_name = App.Path
If Right$(file_name, 1) <> "\" Then file_name = file_name & "\"
file_name = file_name & "test.mdb"
txtDatabaseName.Text = file_name

End Sub










( adoxcreazionedatabasecreazionetabelle.html )- by Paolo Puglisi - Modifica del 17/12/2023