Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[ACCESS] Combobox.rowsource basata su un altra combobox

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[ACCESS] Combobox.rowsource basata su un altra combobox

Postdi oz85 » 26/04/19 13:15

Ciao a tutti ragazzi,

Cerco di descrivere parte del database che ho impostato.

>Tabella → tbl_AnagraficaBriglie
COLONNA 1 → MaterialeBriglia [valore Testo]
COLONNA 2 → SerialeBriglia [valore Testo]

>Maschera → m_msk_AnagraficaCablaggi
combobox → cmb_MaterialeBriglia
combobox → cmb_SerialeBriglia

>Maschera Spostamento → msk_Anagrafiche
tab1 → m_AnagraficheCablaggi

Dato questo scenario, quello che vorrei è inserire un valore dalla combobox cmb_MaterialeBriglia che attinge i valori da una query [cosa che riesco a fare tranquillamente] e poi sulla successiva combobox [cmb_SerialeBriglia] visualizzare tutti i valori che sono frutto da una query che prende il valore della prima combobox [cmb_MaterialeBriglia] e cerca all'interno della tabella appartenente a tbl_AnagraficaBriglie e restituisca i valori presenti nel campo SerialeBriglia. Vi allego un parziale di codice e qualche screen per aiutare a capire. Non riesco a capire come modificare li codice per adattarlo alla mia esigenza. Potete aiutarmi??? Grazie!

https://postimg.cc/gallery/1mjdddk9c/
oz85
Utente Junior
 
Post: 88
Iscritto il: 26/03/18 14:35

Sponsor
 

Re: [ACCESS] Combobox.rowsource basata su un altra combobox

Postdi oz85 » 26/04/19 19:45

Ho un aggiornamento, un messaggio d'errore dopo aver associato il codice vba sotto riportato al click sulla combo box cmb_MaterialeBriglia. Riesco a trovare il valore da inserire, ma non voglio inserirlo, vorrei che andasse a popolare i valori che posso inserire tramite elenco a cascata della combobox, questo perchè potrei avere più valori come risultato e vorrei che fosse un operazione manuale di scelta.

Codice: Seleziona tutto
Private Sub cmb_MaterialeBriglia_Click()

Me.cmb_SerialeBriglia.RowSource = DLookup("SerialeBriglia", "tbl_AnagraficaBriglie", "MaterialeBriglia=" & Me.cmb_MaterialeBriglia)
Me.cmb_SerialeBriglia.Requery
End Sub


https://postimg.cc/gallery/edjo20t6/

oz85 ha scritto:Ciao a tutti ragazzi,

Cerco di descrivere parte del database che ho impostato.

>Tabella → tbl_AnagraficaBriglie
COLONNA 1 → MaterialeBriglia [valore Testo]
COLONNA 2 → SerialeBriglia [valore Testo]

>Maschera → m_msk_AnagraficaCablaggi
combobox → cmb_MaterialeBriglia
combobox → cmb_SerialeBriglia

>Maschera Spostamento → msk_Anagrafiche
tab1 → m_AnagraficheCablaggi

Dato questo scenario, quello che vorrei è inserire un valore dalla combobox cmb_MaterialeBriglia che attinge i valori da una query [cosa che riesco a fare tranquillamente] e poi sulla successiva combobox [cmb_SerialeBriglia] visualizzare tutti i valori che sono frutto da una query che prende il valore della prima combobox [cmb_MaterialeBriglia] e cerca all'interno della tabella appartenente a tbl_AnagraficaBriglie e restituisca i valori presenti nel campo SerialeBriglia. Vi allego un parziale di codice e qualche screen per aiutare a capire. Non riesco a capire come modificare li codice per adattarlo alla mia esigenza. Potete aiutarmi??? Grazie!

https://postimg.cc/gallery/1mjdddk9c/
oz85
Utente Junior
 
Post: 88
Iscritto il: 26/03/18 14:35

Re: [ACCESS] Combobox.rowsource basata su un altra combobox

Postdi oz85 » 26/04/19 20:02

Scusate non c'entra nulla! non devo fare una dlookup essendo appunto, che potrei avere molteplici valori e vorrei far effettuare la scelta dalla combobox. Mi occorre una vera e propria Query VBA associato al click della prima combobox [cmb_MaterialeBriglia].
Scusate ma le sto provando tutte!

oz85 ha scritto:Ho un aggiornamento, un messaggio d'errore dopo aver associato il codice vba sotto riportato al click sulla combo box cmb_MaterialeBriglia. Riesco a trovare il valore da inserire, ma non voglio inserirlo, vorrei che andasse a popolare i valori che posso inserire tramite elenco a cascata della combobox, questo perchè potrei avere più valori come risultato e vorrei che fosse un operazione manuale di scelta.

Codice: Seleziona tutto
Private Sub cmb_MaterialeBriglia_Click()

Me.cmb_SerialeBriglia.RowSource = DLookup("SerialeBriglia", "tbl_AnagraficaBriglie", "MaterialeBriglia=" & Me.cmb_MaterialeBriglia)
Me.cmb_SerialeBriglia.Requery
End Sub


https://postimg.cc/gallery/edjo20t6/

oz85 ha scritto:Ciao a tutti ragazzi,

Cerco di descrivere parte del database che ho impostato.

>Tabella → tbl_AnagraficaBriglie
COLONNA 1 → MaterialeBriglia [valore Testo]
COLONNA 2 → SerialeBriglia [valore Testo]

>Maschera → m_msk_AnagraficaCablaggi
combobox → cmb_MaterialeBriglia
combobox → cmb_SerialeBriglia

>Maschera Spostamento → msk_Anagrafiche
tab1 → m_AnagraficheCablaggi

Dato questo scenario, quello che vorrei è inserire un valore dalla combobox cmb_MaterialeBriglia che attinge i valori da una query [cosa che riesco a fare tranquillamente] e poi sulla successiva combobox [cmb_SerialeBriglia] visualizzare tutti i valori che sono frutto da una query che prende il valore della prima combobox [cmb_MaterialeBriglia] e cerca all'interno della tabella appartenente a tbl_AnagraficaBriglie e restituisca i valori presenti nel campo SerialeBriglia. Vi allego un parziale di codice e qualche screen per aiutare a capire. Non riesco a capire come modificare li codice per adattarlo alla mia esigenza. Potete aiutarmi??? Grazie!

https://postimg.cc/gallery/1mjdddk9c/
oz85
Utente Junior
 
Post: 88
Iscritto il: 26/03/18 14:35


Re:

Postdi oz85 » 27/04/19 14:37

Sei stato davvero molto gentile, grazie di cuore! posso approfondire l'argomento con questi link aventi molti esempi. Ho già sistemato un paio di combo box a cascata, ma non riesco, con lo stesso codice a far uscire il risultato sulla seconda combo box nella sotto maschera di navigazione.

Con il codice seguente non viene fuori nulla. Non capisco il perchè.

Codice: Seleziona tutto
Me.cmb_SerialeBriglia.RowSource = "SELECT MaterialeBriglia, SerialeBriglia " & "FROM tbl_AnagraficaBriglie " & _
                           "WHERE MaterialeBriglia = " & Me.cmb_MaterialeBriglia


Ricordo che ho questa situazione:

tbl_AnagraficaBriglie con campi MaterialeBriglia e SerialeBriglia.
Una maschera di navigazione con all'interno sottomaschera msk_AnagraficaCablaggi con all'interno due combo box cmb_MaterialeBriglia e cmb_SerialeBriglia. Con il codice sopra non visualizzo nulla nonostante ho impostato la colonna associata correttamente.

Immagine


archimede ha scritto:http://www.fmsinc.com/MicrosoftAccess/forms/combo-boxes/cascading.html
https://www.fontstuff.com/access/acctut10.htm
https://www.utteraccess.com/wiki/Cascading_Combo_Boxes

ecc. ecc.

HTH.

Alessandro
oz85
Utente Junior
 
Post: 88
Iscritto il: 26/03/18 14:35

Postdi archimede » 27/04/19 18:22

oz85 ha scritto:Con il codice seguente non viene fuori nulla. Non capisco il perchè.
Probabilmente perchè MaterialeBriglia e' testuale, non numerico.
Codice: Seleziona tutto
Me.cmb_SerialeBriglia.RowSource = "SELECT MaterialeBriglia, SerialeBriglia FROM tbl_AnagraficaBriglie WHERE MaterialeBriglia = '" & Me.cmb_MaterialeBriglia & "'"
HTH.

Alessandro
archimede
Moderatore
 
Post: 2835
Iscritto il: 07/11/02 12:41
Località: Genova

Re:

Postdi oz85 » 28/04/19 10:42

Ciao Archimede e buona domenica,

Grazie, hai ragione è un discorso di tipo dati. Ho impostato il tutto in Numerico sia sulla tabella tbl_AnagraficaBriglie, sia sulla tabella dove scrivo tramite Maschera tbl_AnagraficaCablaggi. La Maschera non ha un formato dati impostato sulle combobox. Nonostante tutto ho cancellato e inserito nuovamente le combo box e dopo il codice inserito sulla prima combobox [cmb_MaterialeBriglia] dopo evento aggiornamento, la seconda combobox [cmb_SerialeBriglia] mi restituisce quest'errore:

"Tipo di dati non corrispondenti nell'espressione criterio."

Non capisco però dove ho impostato un valore non numerico... ho controllato le tabelle e la maschera ma mi sembra tutto ok.

Screenshot:
https://postimg.cc/gallery/2iyxfgt0a/

archimede ha scritto:
oz85 ha scritto:Con il codice seguente non viene fuori nulla. Non capisco il perchè.
Probabilmente perchè MaterialeBriglia e' testuale, non numerico.
Codice: Seleziona tutto
Me.cmb_SerialeBriglia.RowSource = "SELECT MaterialeBriglia, SerialeBriglia FROM tbl_AnagraficaBriglie WHERE MaterialeBriglia = '" & Me.cmb_MaterialeBriglia & "'"
HTH.

Alessandro
oz85
Utente Junior
 
Post: 88
Iscritto il: 26/03/18 14:35

Re: Re:

Postdi oz85 » 28/04/19 15:06

Aggiorno con questi due screen d'errore. In pratica non capisco il perchè ma stesso codice VBA per un'altra coppia di combobox restituisce il valore corretto, mentre per la prima coppia continuo a visualizzare quest'errore: "Errore di sintassi nella stringa....."


https://postimg.cc/gallery/2dvrtqg62/

oz85 ha scritto:Ciao Archimede e buona domenica,

Grazie, hai ragione è un discorso di tipo dati. Ho impostato il tutto in Numerico sia sulla tabella tbl_AnagraficaBriglie, sia sulla tabella dove scrivo tramite Maschera tbl_AnagraficaCablaggi. La Maschera non ha un formato dati impostato sulle combobox. Nonostante tutto ho cancellato e inserito nuovamente le combo box e dopo il codice inserito sulla prima combobox [cmb_MaterialeBriglia] dopo evento aggiornamento, la seconda combobox [cmb_SerialeBriglia] mi restituisce quest'errore:

"Tipo di dati non corrispondenti nell'espressione criterio."

Non capisco però dove ho impostato un valore non numerico... ho controllato le tabelle e la maschera ma mi sembra tutto ok.

Screenshot:
https://postimg.cc/gallery/2iyxfgt0a/

archimede ha scritto:
oz85 ha scritto:Con il codice seguente non viene fuori nulla. Non capisco il perchè.
Probabilmente perchè MaterialeBriglia e' testuale, non numerico.
Codice: Seleziona tutto
Me.cmb_SerialeBriglia.RowSource = "SELECT MaterialeBriglia, SerialeBriglia FROM tbl_AnagraficaBriglie WHERE MaterialeBriglia = '" & Me.cmb_MaterialeBriglia & "'"
HTH.

Alessandro
oz85
Utente Junior
 
Post: 88
Iscritto il: 26/03/18 14:35

Postdi archimede » 28/04/19 17:38

Non ho capito gran che sinceramente, ma se il dato e' numerico NON devi metterci gli apici inforno.

Alessandro
archimede
Moderatore
 
Post: 2835
Iscritto il: 07/11/02 12:41
Località: Genova

Re:

Postdi oz85 » 28/04/19 18:58

Non capisco come ma avevo degli apici prima del FORM NomeTabella, quindi generavo errore. Scusa per l'errore banale in ogni caso grazie al tuo aiuto sono riuscito a risolvere. Grazie di nuovo!

PS: posto i codici nel caso servino a qualcun'altro

Codice: Seleziona tutto
Me.cmb_SerialeBriglia.RowSource = "SELECT MaterialeBriglia, SerialeBriglia FROM tbl_AnagraficaBriglie WHERE MaterialeBriglia = '" & Me.cmb_MaterialeBriglia & "'"


Codice: Seleziona tutto
Me.cmb_SerialeTavola.RowSource = "SELECT MaterialeTavola, Serialetavola FROM tbl_AnagraficaTavole WHERE MaterialeTavola = '" & Me.cmb_MaterialeTavola & "'"


archimede ha scritto:Non ho capito gran che sinceramente, ma se il dato e' numerico NON devi metterci gli apici inforno.

Alessandro
oz85
Utente Junior
 
Post: 88
Iscritto il: 26/03/18 14:35


Torna a Applicazioni Office Windows


Topic correlati a "[ACCESS] Combobox.rowsource basata su un altra combobox":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti