[access]source de controle d'un champ

Fermé
kenny - 30 déc. 2007 à 18:27
 amadou.14 - 27 août 2009 à 16:17
Bonjour,

Je rencontre actuellement un problème sur le développement d'une application sous access qui est le suivant :

Le but est de faire une recherche avancée dans la base de données dans différentes tables.
J'ai créé un formulaire avec un champ qui renseigne sur chaque table associée et j'aimerais créé une reqête dynamiquement à partir de ces informations en vb.
J'arrive à accéder aux données du formulaire pour créer la requête mais je ne sais pas comment l'exécuter.
J'ai essayé de changer la source de contrôle d'un champ pour qu'il affiche le résultat de la requête mais sans succès car je pense que je m'y prend mal ou ce n'est pas la bonne solution.

Si quelqu'un trouve le temps de me répondre avec toutes ces fêtes, je serais ravi.
Je vous souhaite en tout cas à tous une bonne année!

Merci d'avance.

Version access : 2007.

3 réponses

faire un calcul avec access par source controle le generateur d'expession doit contenir un text
2
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 33
31 déc. 2007 à 00:53
Private Sub cboID_ARTICLE_Change()

Dim db As Object
Dim rs As Object

On Error GoTo Err_cboID_ARTICLE_Change

Set db = DBEngine(0)(0)
Set rs = db.OpenRecordset("SELECT TOP 1 ID_BRAND FROM Expenses WHERE ID_SHOP = " & Me.cboID_SHOP & " AND ID_ARTICLE = " & Me.cboID_ARTICLE & " GROUP BY ID_BRAND ORDER BY Count(ID_BRAND) DESC")
Me.cboID_BRAND.DefaultValue = rs(0)

Exit_cboID_ARTICLE_Change:
Set rs = Nothing
Set db = Nothing
Exit Sub

Err_cboID_ARTICLE_Change:
MsgBox Err.Description
Resume Exit_cboID_ARTICLE_Change

End Sub
0
J'ai essayé cette proposition sans succès, il me disait qu'il n'y avait pas d'enregistrement en cours...
J'ai trouvé une autre solution sui consiste à intégrer un sous formulaire qui est filtré selon les champs saisies

Private Sub Commande39_Click()
Dim strcritere As String
strcritere = ""
If Not IsNull(Me.cepage) Then
strcritere = "([nomcepage]='" & Me.cepage & "')"
End If
If Not IsNull(Me.pays) Then
If strcritere <> "" Then strcritere = strcritere & "and"
strcritere = strcritere & "([codepays]=" & Me.pays & ")"
End If
If Not IsNull(Me.terroir) Then
If strcritere <> "" Then strcritere = strcritere & "and"
strcritere = strcritere & "([coderegion]=" & Me.terroir & ")"
End If
If Not IsNull(Me.vin) Then
If strcritere <> "" Then strcritere = strcritere & "and"
strcritere = strcritere & "([nomvin]like'" & Me.vin & "*')"
End If
MsgBox strcritere
Me!resultat.Form.Filter = strcritere
Me!resultat.Form.FilterOn = True
End Sub

etc...
0