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

cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008 - 13 avril 2003 à 14:10
cs_FredT Messages postés 65 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 11 avril 2009 - 20 mai 2003 à 15:59
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

cs_FredT Messages postés 65 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 11 avril 2009
20 mai 2003 à 15:59
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
cs_Nixo Messages postés 14 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 15 juin 2004
13 avril 2003 à 14:51
ok merci v arranger ca :)
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
13 avril 2003 à 14:10
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
Rejoignez-nous