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>
ManuAntibes
Messages postés491Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention18 novembre 20215 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.
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 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és64Date d'inscriptionmardi 5 septembre 2006StatutMembreDernière intervention27 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