Acces BDD access

moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007 - 25 juil. 2007 à 16:50
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007 - 26 juil. 2007 à 11:41
,
,

----

,
 ,

----

,

----

bonjour,
je suis debutant en vba et access
quand j'execute ce code dans un module:

<table style="BORDER-RIGHT: #2e3b67 1px solid; BORDER-TOP: #2e3b67 1px solid; BORDER-LEFT: #2e3b67 1px solid; BORDER-BOTTOM: #2e3b67 1px solid; BACKGROUND-COLOR: #bec8e8">----, <tt style=\"FONT-SIZE: 9pt\">Dim Enr As Recordset 
Set Enr = CurrentDb.OpenRecordset(\"select * from A;\", , dbOpenDynaset) 
Enr.MoveFirst 
MsgBox (refC) 
</tt></td>

je reçoi une erreur a la ligne 2, ils me disent erreur '13' incompatibilité de type...
j'ai deja essayer :
<tt style="FONT-SIZE: 9pt">Set Enr = CurrentDb.OpenRecordset("select * from A;", , dbOpenDynaset) 
Set Enr = CurrentDb.OpenRecordset("select * from A", , dbOpenDynaset) 
Set Enr = CurrentDb.OpenRecordset("select * from A;") 
Set Enr = CurrentDb.OpenRecordset("select * from A") 
Set Enr = CurrentDb.OpenRecordset("A") 
</tt>
et y'a rien qui marche, la table A existe bien

c'est quoi l'erreur?? est ce qu'il faut rajouter quelque chose pour la liaison a la base de données??
 j'utilise access 2002 et mon code vba se trouve dans un module de baseTest.mdb qui contient aussi la table A 
merci d'avance</td>
</tr>
</tbody>
</table>

5 réponses

ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
25 juil. 2007 à 22:21
Salut

Remplace
Dim Enr As Recordset  

Par 
Dim  Enr As New ADODB.Recordset

J'ai fait à une époque un fichier excel pour le boulot, qui vérifier dans une base access si un enregistrement exister , si oui , on peut le mettre à jour , si non on l'ajoute.

J'avais pris exemple sur un code source du site VBFrance.

Donne moi ton adresse mail si tu veux je t'enverrais le texte de ma macro, si ça t'interesse.

A+
MANUANTIBES [:p]
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
26 juil. 2007 à 09:33
Salut,

10937 ManuAntibes, la tu lui demande de changer tout son code alors qu'une petite modification suffit je pense meme si tu as raison de conseiller ADO qui est beaucoup mieux.

Voila comment resoudre le pb (normalement car j'ai testé):

Dim Enr As Recordset



Set Enr = CurrentDb.OpenRecordset("A", dbOpenTable)


Enr.MoveFirst 
MsgBox (refC)




' N'oublie pas ca a la fin de ton prog, ca libere la mémoire
Set Enr = Nothing

J'ai pu voir que ceci etait une recopie d'un code d'un autre site. Mefie toi quand tu fais ca car rien ne garantie que ca fonctionne.
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
26 juil. 2007 à 10:30
salut Nicko11, j'ai essayer ton code aussi mais ca ne marche pas chez moi: voila le code que j'ai fait:

Option Compare Database

Function ScriptGeneral()
      Dim societe As Recordset    
      On Error GoTo ScriptGeneral_Err
          Set societe = CurrentDb.OpenRecordset("A", , dbOpenTable)



      ScriptGeneral_Err:
          'si erreur type 30_24 pb de tables attachées
          If Err.Number = 3024 Then
              MsgBox ("3024")
          Else
             MsgBox (Err.Number)
          End If

   Set Enr = Nothing
   ScriptGeneral = "REUSSI"
End Function


si ça marche avec toi c'est que y'a quelque chose qui m'echape non pas dans la progmamation mais la connaissance de ACCESS....

quand j'ouvre access, je choisi un "fichier.mdb" qui lui contient les tables, et la une petites fenetre s'ouvre, je clic sur "Modules" et je choisi mon module ou il y a ce code la.

est ce que j'ai raté une etape??

PS: ce code je l'ai pris d'un logiciel programé par mon tuteur, peut etre lui l'a piqyé du site
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
26 juil. 2007 à 10:47
LOL, peut etre.

Mais si tu regardes, tu ne mets pas la valeur dbOpenTable, sur le bon argument. Tu as une virgule en trop.

Il faut bien sur avoir DAO 2.6 (je crois) dans ses références de projet et que tu aies bien une table nommé A (ce que tu as deja precisé).

Dis moi si ca fonctionne en remettant l'arguement a sa place.

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

Posez votre question
moudz84 Messages postés 64 Date d'inscription mardi 5 septembre 2006 Statut Membre Dernière intervention 27 septembre 2007
26 juil. 2007 à 11:41
ca fonctionne pas encore...
il me dit

erreur d'execution '3001'
argument non valide
Rejoignez-nous