NAVIGATION DANS BASE DE DONNÉE (CARNET D'ADRESSE) !

Signaler
Messages postés
98
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
15 janvier 2008
-
Messages postés
65
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
11 avril 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/6724-navigation-dans-base-de-donnee-carnet-d-adresse

Messages postés
65
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
11 avril 2009

hormis la remarque de filou (c'est indispensable de gérer ça, par contre faire un groupe de bouton, c'est pas obligatoire, c'est même pénible dans certain cas), voici les autres prob que j'ai vu :

- Remplace la ligne
Set amis = OpenDatabase("C:ProgrammationVisual BasicNavigation Base de donnéeamis.mdb")
par
Set amis = OpenDatabase(app.path & "amis.mdb")
, déjà ! et tout le monde t'en sera reconnaissant . Dans un prog, tout ce qui est susceptible d'être différent à un moment ou un autre doit être programmé en conséquence.

- de la même façon (même problème) ajoute
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "amis.mdb"
End Sub

- Si tu désire continuer à afficher que le premier enregistrement trouvé de ta requete recherche, dans Private Sub Command4_Click(), alors ajoute ca avant le End Sub :

Set amis = Nothing
Set resultat = Nothing
La mémoire du PC n'en sera que plus reconnaissante, si tu as beaucoup d'enregistrements

- Gère aussi si ta requete ne trouve pas d'enregistrements :
If resultat.RecordCount > 0 Then
txtid.Text = resultat!ID_personne
...
else
msgbox "rien trouvé"
End If

- Mais t'a une autre solution pour ta recherche. Ton prog est entièrement basé sur un contrôle Data, alors pourquoi tu continue pas sur la même lancée ? remplace tout ce qu'il y a dans ton évènement, par :
Data1.RecordSource "SELECT * FROM Amis WHERE nom '" & txtRecherche.Text & "'"
Data1.Refresh
If Data1.Recordset.RecordCount > 0 Then
Call btn1_Click
End If
Si tu as plusieurs résultats tu pourra tous les voir, mais il faudra ajouter un bouton afficher tout
Messages postés
14
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
15 juin 2004

ok merci v arranger ca :)
Messages postés
98
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
15 janvier 2008

Salut,
Pour la navigation dans la base utilise un groupe de controle (boutons) et gère le début BOF et la fin du fichier EOF.
Public Sub Navigation(Index As Integer)

Select Case Index
Case btPremier
adoRecordset.MoveFirst
Case btPrecedent
adoRecordset.MovePrevious
If adoRecordset.BOF Then
Beep
adoRecordset.MoveFirst
End If
Case btSuivant
adoRecordset.MoveNext
If adoRecordset.EOF Then
adoRecordset.MoveLast
End If
Case btFin
adoRecordset.MoveLast
End Select
end sub