Utilisation des objets ado

Description

Connexion à une base de donnée (fallait que je mette aussi ma contribution)

NIVEAU 2

Source / Exemple :


'utilisation des objets ADO

'IL FAUT : une form, 4 zones de txt, 5 label, 2 cadres contenant chacun 3 boutons
'd'options, 8 boutons de commandes

'y a aussi l'zip au cas où

'relier la bibliothèque Ado au projet, par la commande Projet/Référence puis
'cochez Microsoft ActiveX Data Objets 2.0 Library.

'J'ai même rajouter le fichier Biblio auquel ont ce connecte (on sait jamais que
'qqun l'a pas (même si je sais qu'il s'installe avec VB) :-)

Option Explicit
'3 types de variables
Dim cnnADO As New ADODB.Connection
Dim cmdADO As New ADODB.Command
Dim rsADO As New ADODB.Recordset

Private Sub cmdedit_Click(Index As Integer)
  Dim vntSignet As Variant
  
  Select Case Index
  Case 0 'effacer
    If rsADO.RecordCount > 0 Then
    rsADO.Delete
    cmdmove_Click 2
    End If
  Case 1 'Nouveau
  rsADO.AddNew
  ReadRecord
  txtNom.SetFocus
  Case 2 'enregistrer
    rsADO![Company Name] = setValue(txtNom.Text)
    rsADO!City = setValue(txtville.Text)
    rsADO!State = setValue(txtEtat.Text)
    
    vntSignet = rsADO.Bookmark
    rsADO.Update
    rsADO.Requery
    rsADO.Bookmark = vntSignet
    ReadRecord
  Case 3 'quitter
    Unload Me
  End Select
End Sub

'Si une zone de texte ne contient rien d'autre que des espaces (fonction Trim$), la valeur
'Null est renvoyée, sinon la fonction renvoie la chaîne de caractères après l'élimination
'des espaces.
Private Function setValue(str As String) As Variant
  If Trim$(str) = "" Then
    setValue = Null
  Else
    setValue = Trim$(str)
  End If
End Function

Private Sub cmdmove_Click(Index As Integer)
  Select Case Index
  Case 0  ' 1er
    rsADO.MoveFirst
  Case 1  ' précédent
    rsADO.MovePrevious
    If rsADO.BOF Then
      Beep
      rsADO.MoveFirst
    End If
  Case 2  'suivant
    rsADO.MoveNext
    If rsADO.EOF Then
      Beep
      rsADO.MoveLast
    End If
  Case 3  'dernier
    rsADO.MoveLast
  End Select
  
  ReadRecord
End Sub

Private Sub Form_Load()
'Connexion
cnnADO.Provider = "Microsoft.Jet.OLEDB.3.51"
cnnADO.ConnectionString = "F:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb"
'A modifier par rapport à l'installation de Visual Basic. Chez moi c'est F:
cnnADO.Open

'Configurer la commande
cmdADO.ActiveConnection = cnnADO
cmdADO.CommandText = "SELECT PubID, [Company Name], " _
  & " City, State FROM Publishers"
  
'Configurer et ouvrir le Recordset
rsADO.CursorLocation = adUseClient
rsADO.CursorType = adOpenDynamic
rsADO.LockType = adLockPessimistic
rsADO.Open cmdADO

'lire le 1er enregistrement
ReadRecord
End Sub

Private Sub Form_Unload(Cancel As Integer)
cnnADO.Close
End Sub
'la représentation du contenu des champs dans les zones de txt est réalisé par la
'fonction GetValue
Private Sub ReadRecord()
txtID.Text = GetValue(rsADO!PubId)
txtNom.Text = GetValue(rsADO![Company Name])
txtville.Text = GetValue(rsADO!City)
txtEtat.Text = GetValue(rsADO!State)

lblNr.Caption = "Enregistrement " & rsADO.AbsolutePosition _
  & " de " & rsADO.RecordCount
End Sub

Private Function GetValue(fld As Field) As String
  If IsNull(fld) Then
    GetValue = ""
  Else
    GetValue = fld
  End If
End Function

Private Sub optfilter_Click(Index As Integer)
Select Case Index
Case 0 'aucun
  rsADO.Filter = ""
Case 1 'nom avec A
  rsADO.Filter = "[Company Name] Like 'A*'"
  Case 2
   'ville de New York
    rsADO.Filter = "City = 'New York'"
  End Select
  
  'réexécuter la requête
  rsADO.Requery
  cmdmove_Click 1
End Sub

Private Sub optsort_Click(Index As Integer)
Select Case Index
Case 0 'aucun
  rsADO.Sort = ""
Case 1 'nom
  rsADO.Sort = "[Company Name]"
  Case 2
   'ville,décroissant
    rsADO.Sort = "City DESC"
  End Select
  
  'réexécuter la requête
  rsADO.Requery
  cmdmove_Click 1
End Sub

Conclusion :


commenter svp.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.