Accueil > > > ADOX AVEC CRÉATION DE CLÉ MULTIPLE ET ACCESS
ADOX AVEC CRÉATION DE CLÉ MULTIPLE ET ACCESS
Information sur la source
Description
Ce code n'est pas très compliqué en soit. Il s'agit juste de créer une base de donnée access et une table Avec ADOX (Déjà vu sur ce site) mais avec une clé multiple. Je ne crois pas l'avoir vu... Ce code utilise les références : Microsoft ActiveX Data Objects 2.1 library Microsoft ADO Ext. 2.8 for DLL and Security C'est mon premier code déposé ici, j'espère que cela pourra vous aider car j'ai un peu cherché pour comprendre son fonctionnement.
Source
- Option Explicit
-
- Public Sub CreateDBWthTable()
- Dim tbl As New ADOX.Table
- Dim cat As New ADOX.Catalog
- Dim oCon As New ADODB.Connection
- Dim oInd As New ADOX.Index
- Dim cNom As String
- dim oField as new ADOX.column
-
- ' Saisie du nom de la Base de donnée access
- cNom = InputBox("Entrer le nom de la base de donnée sans .MDB", "Saisie")
- cNom = SupprCarDif(cNom) ' voir fonction SupprCarDif
- If cNom <> "" Then
- ' vérifie la non existance de la base
- If Not Exist(App.Path & "\" & cNom & ".mdb") Then 'Currentproject.path pour Access
- 'Création de la base de donnée
- cat.Create "Provider='Microsoft.Jet.OLEDB.4.0';data source=" & app.Path & _
- "\" & cNom & ".mdb"
- 'Creation d'une connection
- Set oCon = New ADODB.Connection
- 'Ouverture d'une connection
- oCon.Open "Provider='Microsoft.Jet.OLEDB.4.0';data source=" & App.Path & "\" & _
- cNom & ".mdb"
- 'Active une connection sur la base défini avec cNom
- Set cat.ActiveConnection = oCon
- 'Saisie du nom de la table
- cNom = InputBox("Entrer le nom de la table", "Saisie")
- cNom = SupprCarDif(cNom)
- If cNom <> "" Then
- tbl.Name = cNom ' Création de la table dont le nom est contenu dans cNom
- oField.Name = "ID" 'Création d'une colonne dont le nom est "ID"
- With oField
- .ParentCatalog = cat 'Rattachement au catalogue ouvert
- .Type = adInteger ' un autoIncrément est entier long
- .Properties("Autoincrement") = True 'Propriété autoincrément pour NumériqueAuto
- End With
- tbl.Columns.Append oField 'Ajout du champ NuméroAuto
-
- tbl.Columns.Append "Field1", adInteger ' Numérique Long Integer
- tbl.Columns.Append "Field2", adVarWChar, 50 ' String de longueur de 50
- tbl.Columns.Append "Field3", adBoolean ' Booleen
- tbl.Columns.Append "Field4", adDouble ' Numérique Double
- tbl.Columns.Append "Field5", adLongVarBinary ' Ole Objet
- tbl.Columns.Append "Field6", adLongVarWChar ' Memo
- tbl.Columns.Append "Field7", adCurrency ' Monétaire
-
- oInd.Name = "Primarykey" ' création d'un index appelé 'Primarykey'
- ' Champs de l'index créé précédemment
- oInd.Columns.Append "Field1"
- oInd.Columns.Append "Field2"
- oInd.PrimaryKey = True ' Définition de l'index comme Primarykey
- tbl.Indexes.Append oInd 'ajout de l'index à la table
- cat.Tables.Append tbl 'ajout de la table à la base de donnée
- Else
- MsgBox "La création de table à été annulée", , "Annulation"
- End If
- Set cat = Nothing
- Set oCon = Nothing
- Else
- MsgBox "La création de Base de donnée à été annulée", , "Annulation"
- End If
- Else
- MsgBox "La Base de donnée existe déjà.", , "Annulation"
- End If
- End Sub
- Function SupprCarDif(pText) As String
- Dim cText As String
- Dim i As Integer
- 'Supprime le caractère différent des caractères standarts de l'alphabet
- 'Supprime aussi les caractères numériques
- For i = 1 To Len(pText)
- If (Asc(Mid(pText, i, 1)) >= 65 And Asc(Mid(pText, i, 1)) <= 90) Or (Asc(Mid(pText, i, 1)) >= 97 And Asc(Mid(pText, i, 1)) <= 122) Then
- cText = cText & Mid(pText, i, 1)
- End If
- Next i
- SupprCarDif = cText
- End Function
- Public Function Exist(cFile) As Boolean
- ' Vérifie l'existance du fichier
- Dim sf
- Set sf = CreateObject("Scripting.FileSystemObject")
- Exist = sf.FileExists(cFile)
- Set sf = Nothing
- End Function
-
-
Option Explicit
Public Sub CreateDBWthTable()
Dim tbl As New ADOX.Table
Dim cat As New ADOX.Catalog
Dim oCon As New ADODB.Connection
Dim oInd As New ADOX.Index
Dim cNom As String
dim oField as new ADOX.column
' Saisie du nom de la Base de donnée access
cNom = InputBox("Entrer le nom de la base de donnée sans .MDB", "Saisie")
cNom = SupprCarDif(cNom) ' voir fonction SupprCarDif
If cNom <> "" Then
' vérifie la non existance de la base
If Not Exist(App.Path & "\" & cNom & ".mdb") Then 'Currentproject.path pour Access
'Création de la base de donnée
cat.Create "Provider='Microsoft.Jet.OLEDB.4.0';data source=" & app.Path & _
"\" & cNom & ".mdb"
'Creation d'une connection
Set oCon = New ADODB.Connection
'Ouverture d'une connection
oCon.Open "Provider='Microsoft.Jet.OLEDB.4.0';data source=" & App.Path & "\" & _
cNom & ".mdb"
'Active une connection sur la base défini avec cNom
Set cat.ActiveConnection = oCon
'Saisie du nom de la table
cNom = InputBox("Entrer le nom de la table", "Saisie")
cNom = SupprCarDif(cNom)
If cNom <> "" Then
tbl.Name = cNom ' Création de la table dont le nom est contenu dans cNom
oField.Name = "ID" 'Création d'une colonne dont le nom est "ID"
With oField
.ParentCatalog = cat 'Rattachement au catalogue ouvert
.Type = adInteger ' un autoIncrément est entier long
.Properties("Autoincrement") = True 'Propriété autoincrément pour NumériqueAuto
End With
tbl.Columns.Append oField 'Ajout du champ NuméroAuto
tbl.Columns.Append "Field1", adInteger ' Numérique Long Integer
tbl.Columns.Append "Field2", adVarWChar, 50 ' String de longueur de 50
tbl.Columns.Append "Field3", adBoolean ' Booleen
tbl.Columns.Append "Field4", adDouble ' Numérique Double
tbl.Columns.Append "Field5", adLongVarBinary ' Ole Objet
tbl.Columns.Append "Field6", adLongVarWChar ' Memo
tbl.Columns.Append "Field7", adCurrency ' Monétaire
oInd.Name = "Primarykey" ' création d'un index appelé 'Primarykey'
' Champs de l'index créé précédemment
oInd.Columns.Append "Field1"
oInd.Columns.Append "Field2"
oInd.PrimaryKey = True ' Définition de l'index comme Primarykey
tbl.Indexes.Append oInd 'ajout de l'index à la table
cat.Tables.Append tbl 'ajout de la table à la base de donnée
Else
MsgBox "La création de table à été annulée", , "Annulation"
End If
Set cat = Nothing
Set oCon = Nothing
Else
MsgBox "La création de Base de donnée à été annulée", , "Annulation"
End If
Else
MsgBox "La Base de donnée existe déjà.", , "Annulation"
End If
End Sub
Function SupprCarDif(pText) As String
Dim cText As String
Dim i As Integer
'Supprime le caractère différent des caractères standarts de l'alphabet
'Supprime aussi les caractères numériques
For i = 1 To Len(pText)
If (Asc(Mid(pText, i, 1)) >= 65 And Asc(Mid(pText, i, 1)) <= 90) Or (Asc(Mid(pText, i, 1)) >= 97 And Asc(Mid(pText, i, 1)) <= 122) Then
cText = cText & Mid(pText, i, 1)
End If
Next i
SupprCarDif = cText
End Function
Public Function Exist(cFile) As Boolean
' Vérifie l'existance du fichier
Dim sf
Set sf = CreateObject("Scripting.FileSystemObject")
Exist = sf.FileExists(cFile)
Set sf = Nothing
End Function
Conclusion
Si des vous avez des problèmes ou des commentaires à me faire parvenir je reste à votre disposition.
Historique
- 26 mars 2008 13:47:02 :
- Ajout de l'ajout d'un champ Auto Incrémenté
- 26 mars 2008 17:25:37 :
- Ajout de l'ajout d'un champ memo
- 08 juillet 2008 13:49:06 :
- Ajout de l'ajout d'un champ monétaire
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
les etats access [ par henri ]
comment faire pour imprimer un etat access par un code VisualBasic ?
VB & Access 2000 [ par Uther ]
J'aimerais savoir comment faire pour connecter un DAO datacontrol à une BD Access 2000 sans que le message de "Base de donnee invalide" n'intervienne.
Copier un etat access vers Excel [ par Ol ]
Je voudrais copier un etat access (un tableau) vers Excel sans perdre la mise en page (ou le moins possible).Comment faire??
Exécutable avec Access [ par janus ]
Nous avons problème à créer un exécutable en utilisant Vb avec Access, en considérant que le logiciel Access ne doit pas être obligatoire.C'est à dire
enregistrer un document word [ par Christian ]
Bonjour à tous, et bravo pour la qualité de ce site sur VB "En Français".Depuis quelques jours je me prend la tête pour enregistrer un document Word à
Imprimer état Access sous VB [ par janus ]
Le problème est de pouvoir imprimer un état Access sous VB, et ce sans que le logiciel Access ne s'ouvre.Merci d'avance
Accès à une base de donnée Access sous VB [ par lolo ]
J'aimerais réaliser une sorte de moteur de recherche en VB :il y a différents champs à remplir par l'utilisateur; une fois ces derniers remplis l'appl
VB et formulaires access [ par jabri ]
Est ce posssible d'appeler à partir d'un programme VB un formulaire appartenet a access (en gardant le look access) et comment merci...
Outlook et Access 2000 [ par taz ]
Comment exporter ou importer les informations du calendrier d'Outlook 2000 ans Access 2000
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|