Ciao Ivo,
direi che Karl ha risposto correttamente in base all'oggetto della tua domanda "Access combobox: leggere tutti i valori"
se vuoi solo i prodotti assegnati ad un cliente dovrai scorrere i record della tabella ClientiProdotti filtrata dal cliente desiderato.
Qui un paio di metodi che lavorano nell'evento click di un pulsante posto nella maschera principale
Il primo forse più complesso ma adatto a grossi volumi di dati
Private Sub Comando1_Click()
Dim StrSql As String
Dim Rs As DAO.Recordset
Dim StrProdotti As String
StrSql = "SELECT Prodotti.Prodotto " & _
"FROM ClientiProdotti INNER JOIN Prodotti ON ClientiProdotti.Prodotto = Prodotti.ID " & _
"WHERE ClientiProdotti.Cliente = " & Me.ID
Set Rs = CurrentDb.OpenRecordset(StrSql)
If Rs.RecordCount <> 0 Then
Rs.MoveFirst
Do Until Rs.EOF
StrProdotti = StrProdotti & ";" & Rs!Prodotto
Rs.MoveNext
Loop
End If
Rs.Close
Set Rs = Nothing
MsgBox Mid(StrProdotti, 2)
End Sub
Il secondo più semplice ma da utilizzare se il cliente ha pochi prodotti (10~20)
rivate Sub Comando2_Click()
Dim Rs As DAO.Recordset
Dim StrProdotti As String
Set Rs = Me.msk_ClientiProdotti.Form.RecordsetClone
If Rs.RecordCount <> 0 Then
Rs.MoveFirst
Do Until Rs.EOF
StrProdotti = StrProdotti & ";" & DLookup("Prodotto", "Prodotti", "Id = " & Rs!Prodotto)
Rs.MoveNext
Loop
End If
Set Rs = Nothing
MsgBox Mid(StrProdotti, 2)
End Sub
Ciao
Giorgio Rancati