Imaginsystems


Tecniche di Programmazione - Codici Sorgenti - News Informatiche
Archivio Posts
Anno 2014

Anno 2013

Anno 2012
Statistiche
  • Views Home Page: 71.612
  • Views Posts: 542.477
  • Views Gallerie: 0
  • n° Posts: 210
  • n° Commenti: 224

VB6 - CREARE UN DATABASE ACCESS DA CODICE (Microsoft DAO 3.6 Object Library)

CREARE UN DATABASE ACCESS DA CODICE 

Prima di cominciare dobbiamo aggiungere una dll al progetto. 

Quindi fare click su Project >> References

Si aprirà una finestra e spuntare Microsoft DAO 3.6 Object Library (dao360.dll) e poi fare click su Ok

Ora siamo pronti a creare un Database Access da codice Visual Basic 6 (VB6)

' By Davide1986 Code www.imaginsystems.it
' Aggiungere Riferimento Microsoft DAO 3.6 Object Library
Const NameDatabase = "Rubrica" ' Scegliere il nome del Database da creare
Const NameTabella = "TBUser" ' Segli il nome della Tabella da inserire
Const MaxCampi = 2 'non modificare indice che serve ad indicare 0= nome del campo 1=intero tipo del campo se dbText=10 o dbInteger=3 ecc..
Const MaxRecord = 2

Private Function CreaDatabase(ByVal NomeDatabase As String) As Boolean
'Verifico che il NomeDatabase sia corretto senza simboli strani e che non sia vuoto
If Corretto(NomeDatabase) = True And Esiste = Dir(App.Path & "\" & NomeDatabase & ".mdb") Then
NomeDatabase = ClearString(NomeDatabase)

Dim db As DAO.Database
Set db = CreateDatabase(App.Path & "\" & NomeDatabase & ".mdb", dbLangGeneral)

CreaDatabase = True
Else
'Restituisce errore, database non creato
CreaDatabase = False

End If
End Function

Private Function CreaTabella(ByVal NomeTabella As String, ByRef campi() As String, ByVal MaxCampiTabella As Integer) As Boolean
'Verifico che NomeTabella non sia vuoto e che non contiene caratteri strani
CreaTabella = False 'variabile di controllo eseguzione
If Corretto(NomeTabella) = True Then
NomeTabella = ClearString(NomeTabella)

Dim dbs As Database
Dim tdfMiaTabella As TableDef
Dim fldMioCampo As Field

Set dbs = OpenDatabase(App.Path & "\" & NameDatabase & ".mdb")
Set tdfMiaTabella = dbs.CreateTableDef(NomeTabella)

'Se volessi inserire solo un campo nella tabella
'Set fldMioCampo = tdfMiaTabella.CreateField("ImportoOre", dbInteger)
'Inserire il campo nella tabella
'tdfMiaTabella.Fields.Append fldMioCampo

'se vogliamo inserire più campi nella tabella
'With tdfMiaTabella
' .Fields.Append .CreateField(campi(0, 0), campi(0, 1))
' .Fields.Append .CreateField(campi(1, 0), campi(1, 1))
' .Fields.Append .CreateField(campi(2, 0), campi(2, 1))
'End With

'avendo un Array lo controlliamo tutto e inseriamo i dati
For i = 0 To MaxCampiTabella
With tdfMiaTabella
.Fields.Append .CreateField(campi(i, 0), campi(i, 1))
End With
Next

dbs.TableDefs.Append tdfMiaTabella
dbs.Close

CreaTabella = True
End If

End Function
Private Function Corretto(ByVal s As String) As Boolean
Corretto = False
'controllo se è vuto
If s <> "" Then
'pulisco la stringa da caratteri indisiderati
s = ClearString(s)
If s <> "" Then
Corretto = True
Debug.Print "Corretta Stringa = " & s
End If
End If
End Function
Private Function ClearString(ByVal strIn As String) As String

Dim ch As Variant
For Each ch In Array(",", "%", "/", "'", ".", "(", ")", ";", "!", "+", "^", "&", "\", "?", "]", "[", "{", "}", "=", "|", ":", "_")
strIn = Replace(strIn, ch, "")
Next ch
ClearString = Trim$(strIn)

End Function
Private Function AvvioDatabase()

If CreaDatabase(NameDatabase) = True Then

'MsgBox "Creato con sucesso"
Debug.Print "Creato database con sucesso"

Dim ArrayCampi() As String
Dim MaxArrayCampi As Integer

Dim ArrayRecordTest() As String
Dim MaxRecordTest As Integer

ArrayRecordTest = CaricaArrayRecord_Test(4) 'Carica X record di dimostrazione
MaxRecordTest = UBound(ArrayRecordTest) 'Indice Massimo Array , dice quante righe ci sono nell'array

ArrayCampi = CaricaArrayCampi_TBUser() 'Richiama la Funzione e carica tutti i campi
MaxArrayCampi = UBound(ArrayCampi) 'Indice Massimo Array , dice quante righe ci sono nell'array


If CreaTabella(NameTabella, ArrayCampi, MaxArrayCampi) = True Then
'creata la tabella

If AggiungiRecord(NameTabella, ArrayRecordTest, MaxRecordTest) = True Then

End If
End If

Else
'MsgBox "Errore database"
Debug.Print "Errore creazione database"
End If
End Function
Private Function CaricaArrayCampi_TBUser() As String()
Dim Arrays(0 To MaxRecord, 0 To MaxCampi) As String

Arrays(0, 0) = "IDUser"
Arrays(0, 1) = "3" ' dbInteger = 3
Arrays(1, 0) = "Username"
Arrays(1, 1) = "10" 'dbText = 10
Arrays(2, 0) = "Password"
Arrays(2, 1) = "10" 'dbText = 10

CaricaArrayCampi_TBUser = Arrays
End Function
Private Function CaricaArrayRecord_Test(ByRef MaxRecordArray As Integer) As String()
ReDim Arrays(0 To MaxRecordArray, 0 To MaxCampi) As String

Arrays(0, 0) = "Test"
Arrays(0, 1) = "Test"
Arrays(1, 0) = "Demo"
Arrays(1, 1) = "Demo"
Arrays(2, 0) = "Davide"
Arrays(2, 1) = "Davide"
Arrays(3, 0) = "Marco"
Arrays(3, 1) = "Marco"


CaricaArrayRecord_Test = Arrays
End Function
Private Sub Form_Load()
Call AvvioDatabase
End Sub

Private Function AggiungiRecord(ByVal NomeTabella As String, ByRef ArrayRecord() As String, ByVal MaxArrayRecord As Integer) As Boolean
AggiungiRecord = False


'Funzione che serve per aggiungere record a una tabella
Dim dbs As DAO.Database
Dim rst As DAO.Recordset

Set dbs = OpenDatabase(App.Path & "\" & NameDatabase & ".mdb")

Dim query As String
Dim ID_Record As Integer


Set rst = dbs.OpenRecordset("SELECT COUNT(*) AS numero FROM " & NomeTabella)

ID_Record = rst("numero") + 1

For i = 0 To MaxArrayRecord - 1

' SQL INSERT azzione query.
query = "INSERT INTO " & NomeTabella & " VALUES ( "
query = query & "'" & ID_Record & "', "
query = query & "'" & ArrayRecord(i, 0) & "', "
query = query & "'" & ArrayRecord(i, 1) & "' "
query = query & ")"

' Execute the query.
On Error GoTo NotInserted
dbs.Execute (query)

'MsgBox "Ok"
Debug.Print "Eseguita correttamente la funzione inserimento Query = " & query
AggiungiRecord = True
ID_Record = ID_Record + 1
Next
Exit Function
NotInserted:
MsgBox "Error" & Str$(Err.Number) & _
" inserting record." & vbCrLf & _
Err.Description


End Function

Codice Zippato Download File VB6 - ACCESS

Categoria: VB6
giovedì, 03 mag 2012 Ore. 16.51

Messaggi collegati


Ora e Data
Mappa
Blogs Amici
    Copyright © 2002-2007 - Blogs 2.0
    dotNetHell.it | Home Page Blogs
    ASP.NET 2.0 Windows 2003