Affichage des données

spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 25 oct. 2008 à 23:48
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 26 oct. 2008 à 21:07
Bonsoir,

J'ai créé un groupe de label indexés et dans l'événement Click du premier label (cin(0)), j'ai inséré le code suivant :

Private Sub ncin_Click(Index As Integer)
x = Index
If ncin(x) = "" Then
    FRMPersonnel.Show
Else
infopersonnel
End If
End Sub

Infopersonnel :

Public Sub infopersonnel()
SSTab1.Tab = 1
Set cn = New Connection
cn.Open "File name=" & App.Path & "\connect.udl"

s = "SELECT Personnel.Cin, Personnel.Nom, Personnel.Prenom, Personnel.DateNaissance, SituationFam.Situation, Personnel.Adresse, Villes.Ville, Diplomes.Diplomes, Personnel.AnneeExp, Personnel.Photo,DetailsPersonnel.NContrat, TypesContrats.TypeContrat, DetailsPersonnel.DateDebut, DetailsPersonnel.DateFin"s s + " FROM TypesContrats INNER JOIN (DetailsPersonnel INNER JOIN (Diplomes INNER JOIN (Villes INNER JOIN (SituationFam INNER JOIN Personnel ON SituationFam.Code Personnel.SituationFam) ON Villes.Code = Personnel.Ville) ON Diplomes.Code = Personnel.Diplome) ON DetailsPersonnel.CIN = Personnel.Cin) ON TypesContrats.Code = DetailsPersonnel.TypeContrat"s s + " WHERE Personnel.Cin'" + ncin(x) + "';"

Set rs = New Recordset
rs.CursorLocation = adUseClient
rs.Open s, cn, adOpenDynamic, adLockOptimistic

numcin.Caption = rs.Fields(0)
nome.Caption = rs.Fields(1)
prenom.Caption = rs.Fields(2)
datenaissance.Caption = rs.Fields(3)
SituationFam.Caption = rs.Fields(4)
adresse.Caption = rs.Fields(5)
ville.Caption = rs.Fields(6)
diplomes.Caption = rs.Fields(7)
nb.Caption = rs.Fields(8)
photoc.Picture = LoadPicture("Photos" & rs.Fields(9) & ".jpg")
Label12.Caption = rs.Fields(0)
Label11.Caption = rs.Fields(1)
Label10.Caption = rs.Fields(2)
Label9.Caption = rs.Fields(3)
Label8.Caption = rs.Fields(4)
Label7.Caption = rs.Fields(5)
Label6.Caption = rs.Fields(6)
Label5.Caption = rs.Fields(7)
Label4.Caption = rs.Fields(8)
Image1.Picture = LoadPicture("Photos" & rs.Fields(9) & ".jpg")
i = 0
Do Until rs.EOF
ncontrat(i) = rs.Fields(10)
typec(i) = rs.Fields(11)
debut(i) = rs.Fields(12)
fin(i) = rs.Fields(13)
i = i + 1
rs.MoveNext
Loop
cn.Close
End Sub

Quand je clique sur le premier label, je reçois toutes les infos concernant le client (date de naissance, n°contrat, contrat...). Mais quand je clique sur le deuxième je reçois un bug m'indiquant que l'enregistrement a été supprimé, alors qu'il n'a jamais existé. Sachant que j'ai deux tables, "Personnel" contient les coordonnées du personnel, et la table "DetailsPersonnel" qui contient les infos concernant son recrutement au sein de l'entreprise.
Pouvez-vous m'indiquer où est l'erreur ?

Merci.

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 oct. 2008 à 09:16
dans ta fonction infopersonnel, ta variable x n'est pas déclarée, elle prend donc systématiquement la valeur 0

le Do Until rs.EOF est à mettre avant la ligne numcin.Caption=rs.Fields(0)

Un conseil, rajoute systématiquement sur la première ligne de chacun de tes modules ou Form la ligne Option Explicit, ça t'évitera les problèmes de variables non déclarée en t'obligeant à les déclarer

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
26 oct. 2008 à 21:07
J'ai déclaré la variable x dans le module. Mais je vais suivre toutes vos indications.
Merci.
0
Rejoignez-nous