Ajout d'une table avec vb6

thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007 - 12 juin 2007 à 10:53
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 - 13 juin 2007 à 00:22
bonjour,


j'ai une base de donnée piloté avec ado.
Je voudrais que dans ma base donnée que je peux enregistrer une nouvelle table.


et je veux que cette et le nom du numéro de commande.


j'essai de comprendre avec adox




Dim Cat As ADOX.Catalog
    Dim MaTableIndex As ADOX.Table
    Dim NomTable As String
   
    Set Cat = CreateObject("ADOX.Catalog")
    Cat.Create _
    "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\Program files\PrjMarit\bdd1.mdb"
 
    NomTable = TxtNumComm.Text '"MaTable"
    Set MaTableIndex = CreateObject("ADOX.Table")
   
    With MaTableIndex
        .Name = NomTable
        With .Columns
            .Append "Date", adDate
            .Append "tension_obtenue", adsingle
        End With
    End With
   
    With Cat
    .Tables.Append MaTableIndex
    End With
   
    Set Cat = Nothing
    Set MaTableIndex = Nothing


j'ai une erreur sur dim cat as adox.catalog
il me dit: user_defined type notdefined

19 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 juin 2007 à 10:59
manque la reference a ADOX dans ton projet...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
12 juin 2007 à 11:02
c'est quoi la référence adox ?
désolé mais je suis débutant en vb6
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
12 juin 2007 à 11:05
ADODB te permet d'accèder au contenu de ta base, ADOX te permet de modifier sa structure (table, requêtes stockées, etc.)
0
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
12 juin 2007 à 11:14
j'ai ajouté dans le menu project reférence ado ext

le problème maintenant c'est pour la sauvegarde:

il me met variable not defined sur AdoNomTable.recordset

If LblAffichage.Caption >= 0 Then
    With AdoNomTable.Recordset
             .AddNew
             !Date = Date
             !tension_obtenue = LblAffichage.Caption
                         
             .Save
             .Requery
    End With
   ' If FrmAffichage.Visible = True Then CmdAnnulation.SetFocus
   
    Timer3.Enabled = True
   


End If
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 juin 2007 à 11:16
Salut,
Dans l'IDE VB6
Menu Projet => Références => Microsoft ADO Ext. 2.5 for DDL And Security
Ou bien alors la déclaration de Cat en Object
@+: Ju£i?n
Pensez: Réponse acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 juin 2007 à 11:18
Re,
Désolé [auteurdetail.aspx?ID=1030895 thunderpat59199]post Croisé avec le tien
Pour la seconde erreur cela veut bien dire ce que ca veut dire...
Tu n'as pas déclarer de variable AdoNomTable

Il faudrait ajouter Option Explicit pour éviter ces erreurs
@+: Ju£i?n
Pensez: Réponse acceptée
0
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
12 juin 2007 à 11:19
comment fait on pour la déclarer
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 juin 2007 à 11:23
Re,
excuses ma franchise
Tu pousserais pas un peu là!!!
Si tu ne sais pas déclarer une variable ou va t'on (enfin toi surtout)

DIM NomVARIABLE AS TYPEVARIABLE

@+: Ju£i?n
Pensez: Réponse acceptée
0
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
12 juin 2007 à 11:33
comment fais ton pour enregistrer sur la table que j'ai crée?
dans with .recorset je met quoi?

Dim Cat As ADOX.Catalog
    Dim MaTableIndex As ADOX.Table
    Dim NomTable As String
   
    Set Cat = CreateObject("ADOX.Catalog")
    Cat.Create _
    "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\Program files\PrjMarit\bdd1.mdb"
 
    NomTable = TxtNumComm.Text '"MaTable"
    Set MaTableIndex = CreateObject("ADOX.Table")
   
    With MaTableIndex
        .Name = NomTable
        With .Columns
            .Append "Date", adDate
            .Append "tension_obtenue", adsingle
        End With
    End With
   
    With Cat
    .Tables.Append MaTableIndex
    End With
   
    Set Cat = Nothing
    Set MaTableIndex = Nothing

If LblAffichage.Caption >= 0 Then
    With AdoNomTable. Recordset
             .AddNew
             !Date = Date
             !tension_obtenue = LblAffichage.Caption
                         
             .Save
             .Requery
    End With
   ' If FrmAffichage.Visible = True Then CmdAnnulation.SetFocus
   
    Timer3.Enabled = True
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
12 juin 2007 à 13:50
Salut,

tu n'étais pas obliger d'utiliser ADOX pour creer une table mais aussi une requete SQL. Enfin, maintenant que c'est fait.
Avec un recordset, la méthode Update te permet de mettre a jour tes données.
0
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
12 juin 2007 à 14:22
ah bon moi je pensait pour créer une table on était obligé de passer par adox. Sinon comment ferait tu pour créer une table sans adox
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 juin 2007 à 14:25
Re,

regarde sur internet du cote de CREATE TABLE

@+: Ju£i?n
Pensez: Réponse acceptée
0
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
12 juin 2007 à 14:39
j'ai mis ça comme code

Dim cnn As New ADODB.Connection


    ' Connexion à la base de donnée
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program files\PrjMarit\bdd1.mdb"


    ' Ajout de la table, des trois champs et de la clé primaire
    cnn.Execute "CREATE TABLE TxtNumComm.Text (date date, tension_obtenue single, PRIMARY KEY (Champ1))"


    cnn.Close
    Set cnn = Nothing

le problème c'est quand je l'execute i lme met erreur de syntaxe et cnn;execute il est en jaune
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
12 juin 2007 à 14:42
ADOX permet d'utiliser une programmation objet pour modifier la structure de ta base.

Si tu veux, tu peux tout faire par SQL, les tables, les index, etc. Cela nécessite juste d'apprendre le langage SQL (guère compliqué d'ailleurs).
0
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
12 juin 2007 à 14:57
ou peut t'on trouver le language sql
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
12 juin 2007 à 15:00
LOL, ca se trouve pas :p C'est un langage, pas un logiciel.

Codes-sources a un forum dédié à SQL d'ailleurs.

Tu tape SQL tutorial sur google, et là tu devrais trouver pas mal de tutoriaux sur SQL.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
12 juin 2007 à 15:01
Un petit exemple que tu peux adapter

SQL = "CREATE TABLE Table_Temp(" & _
      "Num Numeric PRIMARY KEY," & _
      "Référence Text(50)," & _
      "[Module ou Fonction] Text(50)," & _
      "[From] Text(50)," & _
      "To Text(50)," & _
      "Priorité Text(50)," & _
      "Type Text(50)," & _
      "[Etat de l'anomalie] Text(50));"

Pour l'executer, j'utilise en VBA

DoCmd.RunSQL SQL

mais toi, ca serait plutot :

cnn.Execute SQL

A+
0
thunderpat59199 Messages postés 32 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 28 décembre 2007
12 juin 2007 à 15:30
quand je l'execute il me met run-time error '2147217900

syntax error in fiel definition

et la ligne est souligné

 cnn.Execute "CREATE TABLE TxtNumComm.Text (date date, tension_obtenue single, PRIMARY KEY (Champ1))"
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
13 juin 2007 à 00:22
Tu as essayé ce que je t'ai proposé ?
0
Rejoignez-nous