NAVIGATION DANS BASE DE DONNÉE (CARNET D'ADRESSE) !
cs_filou
Messages postés98Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention15 janvier 2008
-
13 avril 2003 à 14:10
cs_FredT
Messages postés65Date d'inscriptionmardi 18 février 2003StatutMembreDernière intervention11 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.
cs_FredT
Messages postés65Date d'inscriptionmardi 18 février 2003StatutMembreDernière intervention11 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és14Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention15 juin 2004 13 avril 2003 à 14:51
ok merci v arranger ca :)
cs_filou
Messages postés98Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention15 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
20 mai 2003 à 15:59
- 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
13 avril 2003 à 14:51
13 avril 2003 à 14:10
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