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

cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 14 sept. 2005 à 17:45 - Dernière réponse : cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention
- 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
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 14 sept. 2005 à 18:18
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 !?

Merci cs_CanisLupus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Meilleure réponse
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 14 sept. 2005 à 19:27
3
Merci
Tu le mets dans le commandtext :

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

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

Merci cs_CanisLupus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Meilleure réponse
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 15 sept. 2005 à 17:47
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 !?

Merci cs_CanisLupus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 14 sept. 2005 à 17:54
0
Merci
Salut, qu'utilises tu ? DAO ou ADO ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 14 sept. 2005 à 17:59
0
Merci
Ado
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 14 sept. 2005 à 18:05
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/
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 14 sept. 2005 à 18:10
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 !
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 14 sept. 2005 à 18:22
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 ?
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 14 sept. 2005 à 18:33
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/
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 14 sept. 2005 à 18:56
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 !?
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 14 sept. 2005 à 19:04
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
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 15 sept. 2005 à 17:35
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.