Ouvrir une table Access par VB6 [Résolu]

Signaler
Messages postés
26
Date d'inscription
jeudi 27 janvier 2005
Statut
Membre
Dernière intervention
10 mai 2005
-
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
-
Bonjour,
J'ai un soucis dans mon programme, je ne comprends pas pourquoi il ne fonctionne pas.
Je dois ouvrir une table dans ma base Access, j'ouvre ma table Absence où il y a l'identifiant des Absences identique à ma variable, pour recueillir des informations.
Seulement Vb me dis que les types de ma variable N et Mon IdAbsence de ma table sont incompatibles.
Ma variable est de type long et mon IdAbsence est de type automatique donc numérique entier long dans ma table. Voici mon code:

Private Sub Modif_Click()
Dim M As Variant 'recoit l'élément sélectionné dans listview donc l'id_Absence sélectionné par l'utilisateur
Dim N As Long 'recoit M en numérique
Dim Réponse As String 'recoit la réponse de l'utilisateur

'Initialisation des variables
M = ""
N = 0

M = ListView1.SelectedItem
N = Val(M)

Réponse = MsgBox(" Etes vous sûr de vouloir le modifier ?", vbOKCancel, "Mutuelle")
'Condition:si l 'utilisateur est sûr alors on poursuit la modification
If Réponse = vbOK Then
'Le formulaire enregistrement apparaît
Enregistr_Absences.Show
'Le champ num_agent recoit le numéro de l'agent dont on doit modifier l'absence
Enregistr_Absences.Num_Agent.Text = Code_Agent.Text
Call DataBase 'Ouverture de la base de données
'Ouverture de la table où il y a l'IdAbsence identique à celui récupéré dans la variable N
rs.Open "select * from Absence where IdAbsence='" & N & "'", cn, adOpenDynamic
'Transfert des données dans les champs
Enregistr_Absences.Motif_abs.Text = rs![Motif]
Enregistr_Absences.Date_Debut.Text = rs![DateDébut]
Enregistr_Absences.Date_Fin.Text = rs![DateFin]
Enregistr_Absences.Nb_Jour.Caption = rs![NbreJours]

cn.Close 'Fermeture de la base de données

End If

End Sub

Peut etre qu'il y a un type particulier qui s'accorde avec un type Automatique d'une base de données , ou est-ce un autre problème je ne sais pas.
Si quelqu'un a une solution à me proposer, il est le bienvenue.
Marnilla

6 réponses

Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Coches Reponse Acceptée !

It@li@
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Vires les simples Cote

" & N & "",

It@li@
Messages postés
26
Date d'inscription
jeudi 27 janvier 2005
Statut
Membre
Dernière intervention
10 mai 2005

Merci [mailto:It@li It@li]@, j'ai testé et c'est bien ça ,
par contre j'aurais bien aimé comprendre pourquoi , elles servent à quoi ces cotes au cas ou si ca devait se reproduire.
Marnilla
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Coches Reponse Acceptée !

Tout simplement car : ' " & N & " ' ", c' est pour les champs de type Texte
" & N & " ", c'est pour les champs de type Numérique

It@li@
Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Et au fait si tu ne veux pas que ça plante si il ni a aucun enregistrement de trouvé :

If Rs.RecordCount <>0 Then
Enregistr_Absences.Motif_abs.Text = rs![Motif]
Enregistr_Absences.Date_Debut.Text = rs![DateDébut]
Enregistr_Absences.Date_Fin.Text = rs![DateFin]
Enregistr_Absences.Nb_Jour.Caption = rs![NbreJours]
End If

It@li@
Messages postés
26
Date d'inscription
jeudi 27 janvier 2005
Statut
Membre
Dernière intervention
10 mai 2005

Merci tu tuyau

Marnilla