begin process at 2012 02 13 16:07:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Opération invalide sur création de table (Access 2003)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Opération invalide sur création de table (Access 2003)

mardi 10 février 2009 à 13:04:38 | Opération invalide sur création de table (Access 2003)

tedtheOrs

Bonjour,

Je souhaiterai lancer une requête de création de table via une macro.
La requête est correcte (à savoir, elle s'exécute correctement lorsqu'elle est lancée en "direct"), cependant, j'obtiens une erreur 3219 / Opération invalide lorsque je l'execute via macro. L'erreur est localisée sur la ligne en gras.


Code :
Private Sub Commande4_Click()

Dim Rs As DAO.Recordset
Set Rs = CurrentDb.OpenRecordset("Req1")
While Not Rs.EOF
MsgBox Rs(0)
Rs.MoveNext
Wend

Set Rs = Nothing

End Sub
J'ai bien essayé de supprimer la table créée par la requête au préalable mais rien n'y fait.
J'ai fait quelques recherches ici et ailleurs mais j'ai l'impression que cette erreur est plutôt "générique" et que la résolution se fait au cas par cas!

D'avance merci.
mardi 10 février 2009 à 13:38:28 | Re : Opération invalide sur création de table (Access 2003)

hellangel777

Réponse acceptée !
Bonjour,

Pourquoi utiliser de du DAO et non pas de l'ADO (surtout avec de l'acces 2003)???
As-tu bien fait ton référencement? (outils --> références)

HellAngel777
Les machines ne font pas d'erreurs
Heureusement nous sommes humains
mardi 10 février 2009 à 14:22:02 | Re : Opération invalide sur création de table (Access 2003)

tedtheOrs

Merci pour ta réponse!
J'avoue que j'ai choppé le code sur le net...Je ne suis pas un as en Access :D
Par contre, niveau référence, je pense que c'est bon vu que la référence Microsoft DAO 3.6 Object Library est cochée
mardi 10 février 2009 à 14:22:03 | Re : Opération invalide sur création de table (Access 2003)

hebus16

Il est possible que je raconte une bêtise mais jete plutot un oeil sur la methode execute pour les delete/create et update de table. l'openRecordset doit fonctionner pour les select.

Perso Hellangel777 j'utilise moi aussi le DAO et j'en suis content :-p vieilles habitudes mais tant que ça marche et que mes temps de réponses me vont bien je suis peinard ^^
mardi 10 février 2009 à 14:29:06 | Re : Opération invalide sur création de table (Access 2003)

tedtheOrs

hebus6, pourrais tu etre plus...précis s'il te plait?
mardi 10 février 2009 à 15:15:53 | Re : Opération invalide sur création de table (Access 2003)

hebus16

ok si Microsoft DAO 3.6 Object Library alors tu es bon, la librairie est bel et bien active.
Concernant l'exécution de la requête, si j'ai bien compris tu effectues une création de table par une requête. Dans ce cas là définis une Querydef
   Dim QD_Requete As QueryDef
   Dim DB as database
   Dim S_Requete as String

Set QD_Requete = DB.QueryDefs(S_CleRequete)
S_Requete = "CREATE TABLE MACHIN MACHIN MACHIN"
DB.QueryDefs.Delete S_CleRequete ' supprime si ta requête existe deja
Set QD_Requete = DB.CreateQueryDef(S_CleRequete)
QD_Requete.Sql = S_Requete
QD_Requete.Close

' Execution de la requete
   QD_Requete.Execute dbFailOnError

voilà un exemple ... d'ailleurs je viens de reagir que le querydef te servira pas forcement (elle inscrit ta requete directement dans la base de donnée et tu peux donc eviter la reconstitution de la requete en elle meme ... pas sur que cela te soit utile)
par contre là ca te permettra de faire l'execution de tes operations d'ecriture dans la base de donnée avec le Execute

voilà

  e
mardi 10 février 2009 à 15:45:23 | Re : Opération invalide sur création de table (Access 2003)

mamash_bek

Réponse acceptée !

Ce que veux dire Hebus c'est qu'apres avoir ouvert ta connexion à la base tu n'as pas besoin d'utiliser un recordset, il te suffit d'utiliser la methode execute de ta connexion

Exemple:

Set conn = New ADODB.Connection
conn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & db_file & ";" & _
"Persist Security Info=False"
conn.Open

conn.Execute "CREATE TABLE ....."

Vu que tu as l'air de travailler sur ta base access en direct essaie simplement:

Private Sub Commande4_Click()

DoCmd.RunSQL ("Create Table .....;")

mardi 10 février 2009 à 15:47:26 | Re : Opération invalide sur création de table (Access 2003)

mamash_bek

Désolé, je n'avais pas vu la nouvelle réponse d'Hebus
mardi 10 février 2009 à 15:54:59 | Re : Opération invalide sur création de table (Access 2003)

hebus16

héé ^^ le DoCmd je l'avais complètement oublié lui ^^ Faudrait peut être que je révise mes bases aussi :p
Après tout dépend de la bibliothèque utilisé et tout et tout ^^ il n,existe pas qu'une seule solution ^^ heureusement sinon on serait tous au chomage :p
mardi 10 février 2009 à 16:07:16 | Re : Opération invalide sur création de table (Access 2003)

tedtheOrs

Merci à vous 2...En fait, j'ai repris la méthode de Mamsh_bek, en utilisant un simple
DoCmd.RunSQL("...;") qui marche parfaitement...En plus, c'est la méthode que je comprend le mieux...
Ce n'est peut être pas la plus "jolie" mais ca marche très bien!

Hebus, j'ai essayé ta méthode, mais j'avais une erreur 91, bloc With manquant...Je n'ai pas poussé plus loin...

en tout cas, merci à tous les 2!

Excellente fin de journée.

1 2

Cette discussion est classée dans : table, rs, création, opération, invalide


Répondre à ce message

Sujets en rapport avec ce message

Tables temporaires dans VB6 + SQL Server [ par lolo ] Bonjour,j'ai une appli qui a besoin de tables de travail pour ses calculs, et qui est multi-utilisateurs. J'ai donc pensé aux tables temporaires, mais création d'une table à partir de références de tables attachées [ par tpf ] Dans mon environnement, je ne peux pas lire le chemin complet d'une table attachée (la fenêtre d'affichage étant trop petite et pas paramétrable).Donc problème de création de table !!!!!! [ par m.bazier ] J'ai créé une table par l'intermédiaire de VBA, mais tous les champs par défaut sont sur null interdit.Comment peut on modifier cette option dans le c Création de champs par du code dans une table Access [ par Chrystelle ] Bonjour,Je cherche comment ajouter des champs à une table access par du code VB avec ADO.Merci Création de champs par code dans une table Access [ par Chrystelle ] Bonjour,Je cherche comment ajouter des champs à une table Access par du code VB avec ADO.Merci plantage à l'ouverture de la table access !!! - ça urge ! [ par erwan ] voila, ci dessous le debut du code pour ajouter des ENR dans une base que j'aurai precedemment créée et ça plante ....(J'ai chargé les bibliothèques e Lister les champs d'une table (Liaison ODBC) [ par kaluf ] bonjour,j'arrive à lister les tables de la base sélectionée par l'utilisateur par la methode suivante:dim rs as adodb.recordsetset rs=conn.openschema( création d'une table à partir d'un recordset [ par sisqo ] Bonjour,je dispose d'un recordset dans lequel se trouvent des enregistrements. Comment créer une table à partir de ce recordset de manière à ce qu'ell Création d'une Table Access à partir de VB [ par Math44 ] Je crée ma Base à partir de VBJe crée les Tables " " "" "Je voudrais créer un Champ ("N°")-Type de données = NuméroAuto (incrémenté) Avec Acc Création d'un fichier Texte [ par petro666 ] salut j'aimerais créer en VBA à partir d'une Table un fichier texte dontla forme serait la suivante toto;est;beau;mais;ne;mange;rien 1 lligne de ma ta


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,496 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales