Créer une nouvalle table acces (VB6) [Résolu]

Messages postés
109
Date d'inscription
lundi 27 juin 2005
Dernière intervention
17 juillet 2007
- - Dernière réponse : cs_CanisLupus
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 15 sept. 2005 à 17:47
Salut à tous,

Voila je voudrais grâce a du code vb6 créer une nouvelle table dans ma base de données access.

Je voudrais copier une table existante et le renomer après !!

merci de m'aider
Afficher la suite 

12 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
3
Merci
Un bout de code issu de chez Microsoft:

'Cocher "Microsoft ADO Ext ...." dans les références du projet
Sub ADOCreateTable()
Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
' Ouverture du catalogue
cat.Activeconnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=.\Comptoir.mdb;"
' Création d'un nouvel objet Table.
With tbl
.Name = "Contacts"
' Création des champs et les ajouter au nouvel objet
' Table. Cette tâche doit être effectuée avant l'ajout de
' l'objet Table à la collection Tables du
' catalogue.
.Columns.Append "Contact", adVarWChar
.Columns.Append "Fonction", adVarWChar
.Columns.Append "Téléphone", adVarWChar
.Columns.Append "Notes", adLongVarWChar
.Columns("Notes").Attributes = adColNullable
End With
' Ajout de la nouvelle table à la base de données.
cat.Tables.Append tbl
Set cat = Nothing
End Sub

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
3
Merci
Tu le mets dans le commandtext :

CMD.CommandText = "select * into NouvelleTable from Utilisateurs"

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
3
Merci
Dim ADO As ADODB.Connection
Dim CMD As ADODB.Command
Dim RCS As ADODB.Recordset
Dim BD As String
dim variable as string

BD = "C:\Documents and Settings\Thomas\Mes documents\Mes Base de données\mcm.mdb"
Set ADO = New ADODB.Connection
Set CMD = New ADODB.Command
Set RCS = New ADODB.Recordset


ADO.Provider = "Microsoft.Jet.OLEDB.3.51"
ADO.ConnectionString = BD


ADO.Open



CMD.ActiveConnection = ADO

' Duplication de la table
variable = "Essai"
CMD.CommandText = "select * into " & variable & " from Utilisateurs"
RCS.Open CMD

' Lecture de la table d'origine
CMD.CommandText = "select * from Utilisateurs"


RCS.CursorLocation = adUseClient
RCS.CursorType = adOpenDynamic
RCS.LockType = adLockPessimistic
RCS.Open CMD

Variable peut être une texbox ou déclarée en public dans un module.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
0
Merci
Salut, qu'utilises tu ? DAO ou ADO ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
109
Date d'inscription
lundi 27 juin 2005
Dernière intervention
17 juillet 2007
0
Merci
Ado
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
Il faut donc passer par ADOX pour pouvoir créer ta table, et y rajouter des champs, puis la remplir avec ADODB.

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
Messages postés
109
Date d'inscription
lundi 27 juin 2005
Dernière intervention
17 juillet 2007
0
Merci
Merci mais je n'ai aucune idée de comment ça marche !!
Il me faudrait un peu de code ou un bon tuto pour y arriver !
Messages postés
109
Date d'inscription
lundi 27 juin 2005
Dernière intervention
17 juillet 2007
0
Merci
merci beaucoup je vais essayer de me debrouiller avec ca !!!!!

une dernière petite question !!!!

Est ce qu'il y a moyen de copier une table qui est déja présente ??? pour ne pas devoir remplir les colonnes de la nouvelle ?
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
0
Merci
Je ne pense pas, mais c'est pas très compliqué de copier toutes les
colonnes déjà présente : il suffit de parcourir la collection des
Columns et de les recréer à l'identique dans la table de destination
(sans oublier de définir les propriétés de chaque table bien entendu) :



For Each oTable In tblSrc.Columns



Call tblDest.Append(oTable.Name)



Next oTable

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
0
Merci
Pour dupliquer une table, il reste le bon vieux SQL :

"SELECT * INTO TableDestination FROM TableSource"

TableDestination sera créée avec le contenu de TableSource si elle n'existe pas. A toi de vérifier car si elle existe déjà, erreur. De là, un choix : on la détruit avec "drop table TableDestination" ou on lui donne un autre nom.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
109
Date d'inscription
lundi 27 juin 2005
Dernière intervention
17 juillet 2007
0
Merci
merci et comman dois je utiliser ca sur un objet command par exemple ?
Je dois faire une connexion et puis ou est ce que je dois rajouter cette ligne ?

Dim ADO As ADODB.Connection
Dim CMD As ADODB.Command
Dim RCS As ADODB.Recordset
Dim BD As String

BD = "C:\Documents and Settings\Thomas\Mes documents\Mes Base de données\mcm.mdb"


Set ADO = New ADODB.Connection
Set CMD = New ADODB.Command
Set RCS = New ADODB.Recordset


ADO.Provider = "Microsoft.Jet.OLEDB.3.51"
ADO.ConnectionString = BD


ADO.Open



CMD.ActiveConnection = ADO
CMD.CommandText = "select * from Utilisateurs"


RCS.CursorLocation = adUseClient
RCS.CursorType = adOpenDynamic
RCS.LockType = adLockPessimistic
RCS.Open CMD
Messages postés
109
Date d'inscription
lundi 27 juin 2005
Dernière intervention
17 juillet 2007
0
Merci
Quand je remplace dans le code ci-dessus cela fonctionne mais RCS ne s'ouvre plus logique
Alors j'ai essayer le code ci-dessous mais ca ne fonctionne pas

pouvez vous m'aider ??

ha oui autre question peut t'on remplacer le nom de la nouvelle table par une variable ??? si oui comment ?

Dim ADO As ADODB.Connection
Dim CMD As ADODB.Command
Dim RCS As ADODB.Recordset
Dim BD As String


BD = "C:\Documents and Settings\Thomas\Mes documents\Mes Base de données\mcm.mdb"


Set ADO = New ADODB.Connection
Set CMD = New ADODB.Command
Set RCS = New ADODB.Recordset


ADO.Provider = "Microsoft.Jet.OLEDB.3.51"
ADO.ConnectionString = BD
ADO.Open


CMD.ActiveConnection = ADO
CMD.CommandText = "select * into Essai from Utilisateurs"
ADO.Close

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.