Pb gestion base de données relationnelle

Galaita - 15 sept. 2001 à 22:31
 WolfKiller - 17 sept. 2001 à 13:01
Hello,

J'ai un projet à terminer et je débute en VB.

J'ai une base access contenant 4 tbl liées entre elles et appliquant l'intégrité référentielle.
Mon interface VB 6 doit me permettre de remonter dans des txtbox et des cbobox des données de ces 4 tbl.
J'ai utilisé 4 ctrol data associés aux tbl.
2 pb :
Comment faire pour que quand on sélectionne un enregistrement x dans une cbobox utilisant comme data source le control data1, les enregistrements remontés avec les autres control data soient ceux qui sont logiquement liés dans la base access? ouf! :question)
Comment faire pour que mes combobox proposent à la sélection la liste des enregistrements? Actuellement, je les fais apparaître les uns après les autres avec les flêches du control data (pas cool avec 450 enregistrements)... :blush)

Merci, merci, merci :)

1 réponse

Salut

'l ouverture du recordset doit se faire par rapport a tes tables
'et a la connection sur ta base de donnee

Public gObjConnect as ADODB.Connection
Public gObjRset as  ADODB.Recordset 
Public gNomTable as string

'------------------------------fct qui rafraichi la combobox 2
Private Sub ModifCombo(ByVal sFieldLu As String)

Dim nbRset As Integer
Dim sItem As String
Dim i As Integer

        Me.MousePointer = vbHourglass
        'Nettoyage de la combo box
        Combo2.Clear
        
        'creation du recordset
        Set gObjRset = New ADODB.Recordset

On Error GoTo suite:
        gObjRset.Open gNomTable, gObjConnect, adOpenKeyset, adLockReadOnly, adCmdTableDirect
        
        'le nombre d'enregistrement dans le recordset
        nbRset = gObjRset.RecordCount
        If nbRset > 0 Then
        'Deplacement dans le recordset
        gObjRset.MoveFirst
        For i = 0 To nbRset - 1
            If gObjRset.Fields(sFieldLu).Value <> "" Then
                'Les valeurs sont mises dans la combo box
                sItem = gObjRset.Fields(sFieldLu).Value
                Me.Combo2.AddItem (sItem)
            End If
        gObjRset.MoveNext
        Next i
        End If
        gObjRset.Close
suite:
        Me.MousePointer = vbDefault
End Sub

'---

Ensuite dans Combo1_Change ou Combo1_Validate tu appelle la fonction ModifCombo
Tu peux la modifier facilement pour qu'elle soit utilisable dans n'importe
qu'elle combo en rajoutant les param de ComboBox et de Table ou Requete SQL a lire

A + :)
0
Rejoignez-nous