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
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|