|
|
|
|
Notes de cours 9 VB et Bases de données ... suite
Trouver un enregistrement spécifique On peut chercher seulement sur un champ à la fois. Il faudra créer un nouveau TextBox pour saisir le critère de recherche. On met le TextBox de critère comme TabIndex = 0. La recherche sera activée par le LostFocus du Textbox. Si on ne fait pas de recherche (le critère est vide) la fonction ne fait rien. ![]() La syntaxe du Find est un peu difficile - il faut surveiller la ponctuation:
DataControl.Recordset.FindFirst "fieldname = 'searchstring'"
C'est pourquoi c'est préférable de construire le 'searchstring', comme dans le code suivant:
Private Sub txtTrouver_LostFocus()
Dim strNom As String
strNom = Trim(txtTrouver.Text) & "*"
strNom = "au_Lname like '" & strNom & "'"
If txtTrouver.Text <> "" Then
datAuthors.Recordset.FindFirst strNom
End If
End Sub
Utiliser plusieurs data controls
Pour utiliser plusieurs tables dans un même Form il faut créer plusieurs DataControls. Chaque Data control est rattaché à une seule table. Prenons le form "BookAuthor", par exemple: ![]() Les deux nouveaux controls sont: DBList et DBCombo. Ils fonctionnent comme le List et le Combo normal mais, ils peuvent être rattacher à une table, ce que les autres ne peuvent pas faire. ![]() ![]() Il faut rattacher chacun des data controls à la table appropriée. Notez que dans une base Access, une requête est traitée exactemment comme une table. Un data control peut être rattaché à une Requête. ![]() Pour afficher la liste des auteurs dans le DBList, il faut spécifier les propriétés: List Les propriétés Data servent à spécifier où l'information saisie sera stockée. ![]() Quiz: Comment pourriez-vous obtenir le résultat suivant dans le DBList pour Authors: ![]()
La portabilité de l'application
Pour pouvoir exécuter l'application, il faut avoir accès à la base de données. Si le path de la b.d. est spécifié dans les propriétés on peut seulement l'appeler du même répertoire que celui où elle a été créée. En mettant le path dans le code l'application est portable.
Private Sub Form_Load()
datBA.DatabaseName = App.Path & "\bookstor97b.mdb"
datBA.RecordSource = "bookauthor"
datAuthors.DatabaseName = App.Path & "\bookstor97b.mdb"
datAuthors.RecordSource = "authors"
End Sub
Si vous ne voyez pas içi ce que vous cherchez en Visual Basic,
|