Accueil > > > CRÉATION ASSISTÉE PAR CODE DAO D’UNE TABLE DANS MS ACCESS – NOMBRE ET TYPE DE CHAMPS SELON LES BESOINS.
CRÉATION ASSISTÉE PAR CODE DAO D’UNE TABLE DANS MS ACCESS – NOMBRE ET TYPE DE CHAMPS SELON LES BESOINS.
Information sur la source
Description
Voici 2 fonctions pour créer une nouvelle table dans MS Access par code DAO et vérifier s’il n’existe pas déjà dans la base de données une table du même nom. Voici les étapes de la fonction Creer_Toute_Table : o vérifie si la table existe déjà et, si elle existe, que l’usager est d’accord pour la remplacer sinon on sort de la fontion o demande le nom du champ à créer et si aucun nom n’est fournit, on sort de la fonction o demande le type de champs (choix de 12 types) et sort de la fonction si l’usager annule cette étape o crée le champ et l’ajoute à la collection Fields o vérifie si l’usager désire ajouter un autre champ et recommence si oui et, si non, ajoute la table à la collection TableDefs et termine. L’appel de la fonction se fait ainsi; Call Creer_Toute_Table(strNomTable:="MaNouvelleTable")
Source
- Option Explicit
-
- Sub Test_Creer_Toute_Table()
- Call Creer_Toute_Table(strNomTable:="MaNouvelleTable")
- End Sub
-
- ' Crée une table avec un nombre divers de champs
- Function Creer_Toute_Table(strNomTable As String) As Boolean
- On Error GoTo TrappeErreur
- Dim strNomChamp As String
- Dim intTypeChamp As Integer
- Dim tblNouvelleTable As DAO.TableDef
- Dim fldNouveauChamp As DAO.Field
-
- With CurrentDb
- ' Vérifie si une table du même nom existe déjà
- If VerifierExistenceTable(strNomTable:=strNomTable) = True Then
- If MsgBox(Prompt:="Une table nommée " & vbCrLf & _
- strNomTable & vbCrLf & _
- "existe déjà. Désirez-vous continuer et remplacer celle-ci ?", _
- Buttons:=vbCritical + vbYesNo, _
- Title:="Table existe déjà") = vbNo Then
- GoTo ExitHere
- Else
- ' Supprime la table existante
- DoCmd.DeleteObject ObjectType:=acTable, _
- ObjectName:=strNomTable
- End If
- End If
- ' Crée la table
- Set tblNouvelleTable = .CreateTableDef(strNomTable)
- Definir_Champ:
- With tblNouvelleTable
- strNomChamp = InputBox(Prompt:="Nom du champ", _
- Title:="Saisir")
- ' Sort de la fonction s'il aucun nom n'a été fournit
- If strNomChamp = vbNullString Then
- GoTo ExitHere
- End If
- On Error Resume Next
- intTypeChamp = InputBox(Prompt:="Nombre correspondant au type de champ;" & vbCrLf & _
- " Booléen = 1" & vbCrLf & _
- " Octet = 2" & vbCrLf & _
- " Entier = 3" & vbCrLf & _
- " Long = 4" & vbCrLf & _
- " Monétaire = 5" & vbCrLf & _
- " Réel simple = 6" & vbCrLf & _
- " Réel double = 7" & vbCrLf & _
- " Date / heure = 8" & vbCrLf & _
- " Binaire = 9" & vbCrLf & _
- " Texte = 10" & vbCrLf & _
- " Objet Ole = 11" & vbCrLf & _
- " Mémo = 12", _
- Title:="Type de champ", _
- Default:=10)
- ' Sort de la fonction si l'inputBox a été annulée
- If Err.Number = 13 Then
- GoTo ExitHere
- End If
- ' Crée le champ
- Set fldNouveauChamp = .CreateField(Name:=strNomChamp, _
- Type:=intTypeChamp)
- ' Ajoute le champ à la collection Fields
- .Fields.Append fldNouveauChamp
- End With
- ' Vérifie si l'usager désire ajouter un autre champ
- If MsgBox(Prompt:="Désirez-vous ajouter un autre champ ?", _
- Buttons:=vbQuestion + vbYesNo, _
- Title:="Nouveau champ") = vbYes Then
- GoTo Definir_Champ
- End If
- ' Ajoute la table à la collection TableDefs
- .TableDefs.Append tblNouvelleTable
- End With
- Sortie:
- Set fldNouveauChamp = Nothing
- Set tblNouvelleTable = Nothing
- Exit Function
- TrappeErreur:
- MsgBox Err.Description
- Resume Sortie
- End Function
-
- ' Verifie si une table existe dans la base de données courante
- Function VerifierExistenceTable(strNomTable As String) As Boolean
- Dim tblTable As DAO.TableDef
-
- VerifierExistenceTable = False
- For Each tblTable In CurrentDb.TableDefs
- If tblTable.Name = strNomTable Then
- VerifierExistenceTable = True
- Exit For
- End If
- Next
- End Function
Option Explicit
Sub Test_Creer_Toute_Table()
Call Creer_Toute_Table(strNomTable:="MaNouvelleTable")
End Sub
' Crée une table avec un nombre divers de champs
Function Creer_Toute_Table(strNomTable As String) As Boolean
On Error GoTo TrappeErreur
Dim strNomChamp As String
Dim intTypeChamp As Integer
Dim tblNouvelleTable As DAO.TableDef
Dim fldNouveauChamp As DAO.Field
With CurrentDb
' Vérifie si une table du même nom existe déjà
If VerifierExistenceTable(strNomTable:=strNomTable) = True Then
If MsgBox(Prompt:="Une table nommée " & vbCrLf & _
strNomTable & vbCrLf & _
"existe déjà. Désirez-vous continuer et remplacer celle-ci ?", _
Buttons:=vbCritical + vbYesNo, _
Title:="Table existe déjà") = vbNo Then
GoTo ExitHere
Else
' Supprime la table existante
DoCmd.DeleteObject ObjectType:=acTable, _
ObjectName:=strNomTable
End If
End If
' Crée la table
Set tblNouvelleTable = .CreateTableDef(strNomTable)
Definir_Champ:
With tblNouvelleTable
strNomChamp = InputBox(Prompt:="Nom du champ", _
Title:="Saisir")
' Sort de la fonction s'il aucun nom n'a été fournit
If strNomChamp = vbNullString Then
GoTo ExitHere
End If
On Error Resume Next
intTypeChamp = InputBox(Prompt:="Nombre correspondant au type de champ;" & vbCrLf & _
" Booléen = 1" & vbCrLf & _
" Octet = 2" & vbCrLf & _
" Entier = 3" & vbCrLf & _
" Long = 4" & vbCrLf & _
" Monétaire = 5" & vbCrLf & _
" Réel simple = 6" & vbCrLf & _
" Réel double = 7" & vbCrLf & _
" Date / heure = 8" & vbCrLf & _
" Binaire = 9" & vbCrLf & _
" Texte = 10" & vbCrLf & _
" Objet Ole = 11" & vbCrLf & _
" Mémo = 12", _
Title:="Type de champ", _
Default:=10)
' Sort de la fonction si l'inputBox a été annulée
If Err.Number = 13 Then
GoTo ExitHere
End If
' Crée le champ
Set fldNouveauChamp = .CreateField(Name:=strNomChamp, _
Type:=intTypeChamp)
' Ajoute le champ à la collection Fields
.Fields.Append fldNouveauChamp
End With
' Vérifie si l'usager désire ajouter un autre champ
If MsgBox(Prompt:="Désirez-vous ajouter un autre champ ?", _
Buttons:=vbQuestion + vbYesNo, _
Title:="Nouveau champ") = vbYes Then
GoTo Definir_Champ
End If
' Ajoute la table à la collection TableDefs
.TableDefs.Append tblNouvelleTable
End With
Sortie:
Set fldNouveauChamp = Nothing
Set tblNouvelleTable = Nothing
Exit Function
TrappeErreur:
MsgBox Err.Description
Resume Sortie
End Function
' Verifie si une table existe dans la base de données courante
Function VerifierExistenceTable(strNomTable As String) As Boolean
Dim tblTable As DAO.TableDef
VerifierExistenceTable = False
For Each tblTable In CurrentDb.TableDefs
If tblTable.Name = strNomTable Then
VerifierExistenceTable = True
Exit For
End If
Next
End Function
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
[ACCESS VBA] DEFINIR LES PROPRIETES des champs suivants EN CODE VBA ACCESS [ par jasmin_sauvage ]
Bonsoir à tous,J'ai un problème très urgent :Je veux créer une table (Matable) dans laquelle il y a plusieurs champs (Heure,NGH, T
[Déplacé VB6 --> VBA] suppression doublons tabel access sous vba [ par dacarolin ]
bonjour j ai un message erreur execution 3141 dans l instruction select que je n arrive pas a corriger dans cette ligne de code ci dessous qc peut il
besoin d'une intiation de projet menné par access VBA. [ par mecasargoule ]
je mène un projet de fin d'etude, je dois faire une base de données VBA access,pour afficher les indicateur de performance de sté, je n'ai pas une idé
Listview access vba [ par mickael692 ]
Bonjour à tous, Etudiant et débutant en VBA, je développe depuis quelques temps sous VBA, dans le cadre de ma scolarité, un utilitaire sous Access per
developpement sous vba access sites [ par georgeskoly ]
je demande des exemples de projets pour la gestion d'une pharmacie en programmant sous vba access ou des sites programmation sous vba access
vba excel access, attente entre les ordres [ par ls8ls8 ]
Bonjour à tous, Une macro excel sollicite plusieurs fois une base access (écriture et récupérations de données, lancement de macro access avec shell,
barre de progression VBA access [ par vbaddict44 ]
bonjour, j'aimerai intégrer une barre de progression qui affiche l'état d'avancement (en pourcentage ou en seconde) de mon programme vba déclenché p
[Déplacé encore et encore et encore de .Net --> VBA] code VBA du bouton modifier sous access [ par hirondellle ]
tout d'abord bonjour tout le monde. alors permettez moi de vous expliquer ma qustion, j'ai un formulaire access avec un bouton Modifier, je veux lor
DAO creation de table [ par vbaddict44 ]
Bonjour, je souhaite créer une table Access a l'aide de DAO. il n'y a pas de souci la table est bien créer mais le problème intervient quand je veux
[Catégorie modifiée .Net --> VBA] Gestion des groupes de raccourcis via VBA sous Access 2003 [ par LargoWinch38 ]
Bonjour, savez-vous s'il est possible de gérer les groupes de favoris via du code VBA ? Je parle des raccourcis qu'il est possible d'ajouter à un "Gr
|
Derniers Blogs
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 MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
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
|