Filtrare una tabella da un controllo combo

domenica 25 luglio 2010 - 09.44
Tag Elenco Tags  Windows XP  |  Access (.mdb)

raul_lallo Profilo | Newbie

Ho una tabella su cui vorrei fare delle scelte successive filtrando i valori da selezionare.
Ho impostato in una maschera un primo controllo combo1 in cui ho messo come origine riga select distinct
di un primo parametro di selezione della tabella.
Ho poi, sempre sulla stessa maschera, un secondo controllo combo2 in cui vorrei che mi apparissero i records
filtrati in base alla scelta della combo1.
Ho provato in vari modi ma non ci riesco. Potreste aiutarmi? Grazie

iif Profilo | Expert

Ciao, se ho capito, vorresti filtrare la seconda combo con il valore selezionato dalla prima?

raul_lallo Profilo | Newbie

Si. Non riesco a passare il valore scelta nella prima combo nel SQl/filtro della seconda. Va inoltre tenuto conto che la tabella e' sempre la stessa. Grazie
raul_lallo

iif Profilo | Expert

Quando carichi i dati della seconda combo dovresti prendere come valore da utilizzare per il filtro la proprietà boundtext o text della prima combo.

raul_lallo Profilo | Newbie

e' proprio quello che non riesco a fare. Forse è un problema di come scrivere.
Ho provato a passare il valore della prima combo direttamente con Me.combo1.value oppure attraverso una variabile variabile = Me.combo1.value e che effettivamente sono presenti sulla combo2 in quanto se ad esempio inserisco un msgbox su combo2.click() le vedo, però quando le metto nell'SQL o direttamente nel criterio di filtro dell'origine della riga sembra non essere considerata in quanto la combo due risulta blank.















raul_lallo

iif Profilo | Expert

Se posti il codice....

raul_lallo Profilo | Newbie

che significa ....posti(?) il codice?
Come si fa?
Ho cercato anche di racchiudere il Me.combo1.value tra virgolette, doppie virgolette o con un & avanti del nome ed anche racchiuso tra virgolette all'interno della stringa sql o nei criteri della propietà origine riga. Forse la sintassi non è giusta?
raul_lallo

iif Profilo | Expert

quando rispondi a questo post metti nella finestra il codice che utilizzi.

raul_lallo Profilo | Newbie

Combo uno
Nome elemento Scelta_lista
Origine controllo: blank
Tipo origine riga: Table/query
Origine riga: SELECT DISTINCT Uno.Progetto FROM Uno;
Numero colonne: 1
Colonna associate : 1

Combo due
Nome elemento Scelta_lista1
Origine controllo: Nome
Origine riga: SELECT Uno.NUMREC, Uno.Nome, Uno.Progetto FROM Uno WHERE ((Uno.Progetto)=[Me].[scelta_lista].[value]));
Numero colonne: 3
colonna associate : 2

raul_lallo

raul_lallo Profilo | Newbie

Avevo già inviato la risposta la settimana scorsa. lo rimando solo per essere sicuro che sia stato ricevuto e magari il ritardo della risposta è solo perchè è iniziato agosto.
grazie

Combo uno
Nome elemento Scelta_lista
Origine controllo: blank
Tipo origine riga: Table/query
Origine riga: SELECT DISTINCT Uno.Progetto FROM Uno;
Numero colonne: 1
Colonna associate : 1

Combo due
Nome elemento Scelta_lista1
Origine controllo: Nome
Origine riga: SELECT Uno.NUMREC, Uno.Nome, Uno.Progetto FROM Uno WHERE ((Uno.Progetto)=[Me].[scelta_lista].[value]));
Numero colonne: 3
colonna associate : 2

raul_lallo
raul_lallo

iif Profilo | Expert

Hai controllato che il valore che passi alla seconda select non sia vuoto?

raul_lallo Profilo | Newbie

scusa ho messo i nomi combi 1 e combo2 solo per risponderti velocemente, però nel msgbox ho messo il nome esatto di comb, tanto che mi fa apparire il valore.

si ho controllato.
Per essere sicuro ho inserito msgbox (Me.Scelta_lista.value) nell'evento prima di update combo2 ed i valore risulta
raul_lallo

raul_lallo Profilo | Newbie

Non ho più ricevuto alcuna risposta. Devo aspettare la fine del periodo di ferie?. Grazie
raul_lallo

iif Profilo | Expert

Se la prendi così puoi ache aspettare in eterno. Prego.

raul_lallo Profilo | Newbie

Scusa, non intendevo essere scortese ma solo avere un'idea dell'aiuto che potreste darmi per un problema che credo sia difficile solo per me che ne so poco e niente di programmazione.
In ogni caso ti rinnovo le scuse perchè ho visto che normalmente rispondete quasi immediatamente ed invece è più di una settimana che non ricevevo notizie e mi/vi chiedevo se il ritardo non era forse dovuto alle ferie.
raul_lallo

iif Profilo | Expert

ok, nessun problema, puoi inserire nella risposta il codice che utilizzi?

raul_lallo Profilo | Newbie

cosa intendi per codici? Non sono quelli che inserisco nelle proprietà della combo?

per la Combo uno
Nome elemento Scelta_lista
Origine controllo: blank
Tipo origine riga: Table/query
Origine riga: SELECT DISTINCT Uno.Progetto FROM Uno;
Numero colonne: 1
Colonna associate : 1

per la Combo due
Nome elemento Scelta_lista1
Origine controllo: Nome
Origine riga: SELECT Uno.NUMREC, Uno.Nome, Uno.Progetto FROM Uno WHERE ((Uno.Progetto)=[Me].[scelta_lista].[value]));
Numero colonne: 3
colonna associate : 2

La tabella si chiama Uno
raul_lallo

iif Profilo | Expert

Tu hai scritto:
SELECT Uno.NUMREC, Uno.Nome, Uno.Progetto FROM Uno WHERE ((Uno.Progetto)=[Me].[scelta_lista].[value]));

Questa select è una stringa?
Se si:
"SELECT NUMREC, Nome, Progetto FROM Uno WHERE Progetto=" & Combo1.text
Nel caso in cui il valore che gli passi è una stringa sarà:
"SELECT NUMREC, Nome, Progetto FROM Uno WHERE Progetto='" & Combo1.text & "'"

raul_lallo Profilo | Newbie

Non sono riuscito a farla funzionare sia cercando di immettere una stringa (campi Nome e Progetto ovvero proprietà della combo1 “Scelta_lista1” colonna associata 2 o 3) od un numero NUMREC (proprietà colonna associata colonna 1) (Proprietà Larghezza colonne di Scelta_lista1 2,2,2)

1. la codifica della query io la inserisco come proprietà "origine riga" della combo1 la cui proprietà nome è "Scelta_Lista1"
2. Inserisco la punteggiatura delle virgolette come suggerito per la stringa :
"SELECT NUMREC, Nome, Progetto FROM Uno WHERE Progetto=' & "Scelta_Lista.value" & "'";
3. Faccio girare il programma
4. Sebbene sulla combo Scelta_lista appaia un valore (stringa) nella combo Scelta_lista1 non appare nulla.
5. Cambio il valore della combo Scelta_lista e non succede nulla.
6. Clicco all’interno della combo Scelta_Lista1 e non succede nulla
7. Se clicco sulla freccia di scelta della combo Scelta_Lista1 appare il seguente messaggio di errore:
L’origine record “”SELECT NUMREC, Nome, Progetto FROM Uno WHERE Progetto=’ & “Scelta_Lista.text” & “’”” specificata sulla maschera o sul report non esiste.
n.b. Io non ho messo le doppie virgolette iniziali e finali. Evidentemente le mette da sole compilando le proprietà della combo Scelta_Lista1.

Ho provato a mettere 2 campi testo ed una msgbox per avere un controllo dei valori

Private Sub Scelta_lista_AfterUpdate() 'Scelta As Variant)
Me.Testo41.Value = Me.Scelta_lista.Value) 'Text)
Me.Testo47.Value = Me.Scelta_lista.Value) 'Text)
End Sub

Private Sub Scelta_lista1_GotFocus()
MsgBox (Me.Scelta_lista.Value) 'Text)
End Sub

Private Sub Scelta_lista1_Exit(Cancel As Integer)
Me.Testo41.Value = Me.Scelta_lista.Value ‘Text
Me.Testo47.Value = Me.Scelta_lista1.Value ‘Text
MsgBox (Me.Scelta_lista.Value) 'Text)
Me.Testo41.Value = Me.Scelta_lista.Value ‘Text
Me.Testo47.Value = Me.Scelta_lista1.Value ‘Text
End Sub

Se scrivo text come parametro della combo mi da il seguente errore:
Errore di run-time ‘2185’
Impossibile fare riferimento ad una proprietà o ad un metodo per un controllo a meno che non abbia lo stato attivo.

Se invece metto Scelta_lista.value le cose vanno meglio.
Nel msg e nel campo Testo41 e Testo47 appare la scelta della combo Scelta_lista non appena viene modificato il suo valore. .
Nel campo Test47 tale valore viene cancellato/azzerato dopo il msgbox in uscita di Scelta_lista1

raul_lallo

raul_lallo Profilo | Newbie

Non sono riuscito a farla funzionare sia cercando di immettere una stringa (campi Nome e Progetto ovvero proprietà della combo1 “Scelta_lista1” colonna associata 2 o 3) od un numero NUMREC (proprietà colonna associata colonna 1) (Proprietà Larghezza colonne di Scelta_lista1 2,2,2)

1. la codifica della query io la inserisco come proprietà "origine riga" della combo1 la cui proprietà nome è "Scelta_Lista1"
2. Inserisco la punteggiatura delle virgolette come suggerito per la stringa :
"SELECT NUMREC, Nome, Progetto FROM Uno WHERE Progetto=' & "Scelta_Lista.value" & "'";
3. Faccio girare il programma
4. Sebbene sulla combo Scelta_lista appaia un valore (stringa) nella combo Scelta_lista1 non appare nulla.
5. Cambio il valore della combo Scelta_lista e non succede nulla.
6. Clicco all’interno della combo Scelta_Lista1 e non succede nulla
7. Se clicco sulla freccia di scelta della combo Scelta_Lista1 appare il seguente messaggio di errore:
L’origine record “”SELECT NUMREC, Nome, Progetto FROM Uno WHERE Progetto=’ & “Scelta_Lista.text” & “’”” specificata sulla maschera o sul report non esiste.
n.b. Io non ho messo le doppie virgolette iniziali e finali. Evidentemente le mette da sole compilando le proprietà della combo Scelta_Lista1.

Ho provato a mettere 2 campi testo ed una msgbox per avere un controllo dei valori

Private Sub Scelta_lista_AfterUpdate() 'Scelta As Variant)
Me.Testo41.Value = Me.Scelta_lista.Value) 'Text)
Me.Testo47.Value = Me.Scelta_lista.Value) 'Text)
End Sub

Private Sub Scelta_lista1_GotFocus()
MsgBox (Me.Scelta_lista.Value) 'Text)
End Sub

Private Sub Scelta_lista1_Exit(Cancel As Integer)
Me.Testo41.Value = Me.Scelta_lista.Value ‘Text
Me.Testo47.Value = Me.Scelta_lista1.Value ‘Text
MsgBox (Me.Scelta_lista.Value) 'Text)
Me.Testo41.Value = Me.Scelta_lista.Value ‘Text
Me.Testo47.Value = Me.Scelta_lista1.Value ‘Text
End Sub

Se scrivo text come parametro della combo mi da il seguente errore:
Errore di run-time ‘2185’
Impossibile fare riferimento ad una proprietà o ad un metodo per un controllo a meno che non abbia lo stato attivo.

Se invece metto Scelta_lista.value le cose vanno meglio.
Nel msg e nel campo Testo41 e Testo47 appare la scelta della combo Scelta_lista non appena viene modificato il suo valore. .
Nel campo Test47 tale valore viene cancellato/azzerato dopo il msgbox in uscita di Scelta_lista1

raul_lallo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5