in una maschera ho un menu a tendina chiamato committente i cui valori
vengono definiti da una Rowsource.
QUalcosa tipo: me.committente.rowsource = "select n1,n2,n3 ecc.. "
Prima domanda: vorrei prendere da uno script VBA il valore selezionato.
Se faccio me.committente.value non ottengo quello che vedo nella tendina
ma n1. Come fare?
Altra questione. Nella stessa maschera ho una casella combinata. Tramite
lo stesso script VBA vorrei prendere tutte le righe.
Ho cercato di fare quello che è scritto qui:
http://www.sitocomune.com/forms/forms111.htm
Ma dice ceh ItemData non è uan sua proprietà
Cosa sbaglio?
Grazie.MT
Il controllo ha una colonna associata che è quella che ora prelevi di
Default.
Se vuoi leggere la colonna 2(con Indice 1) devi accedere all'Insieme
Column(Index)
Valore=Me.NomeCombo.Column(Indice)
@Alex
ciao
non va, o forse sto sbagliando qualcosa.
l'origine dati della mia combobox č:
SELECT Nominativi.Num, [Nominativo] & ", " & [via] & " - " & [CAP] & " "
& [citta] & " (" & [PR] & ")" AS Espr1
FROM Nominativi
ORDER BY Nominativi.Nominativo;
questo fa sě che se seleziono dal menu a tendina un
Mario Rossi, Via Marco Aurelio - 00100 Roma
che nel database Nominativi ha come NUM 100
se chiedo: Committente = Me.Committente.Column(0)
Mi dice che Committente č 100
se chiedo: Committente = Me.Committente.Column(1) mi dice che il valore
non č valido.
Come posso fare?
MT
Menù a tendina? Forse una combobox?
Se si tratta di una combo controlla quanto segue:
Origine controllo = vuoto
TipoOrigine = Tabella/Query
Origine riga = TuaSelect
qui cambiala così perchè la tua è scritta male:
SELECT Nominativi.Num, [Nominativo] & ", " & [via] & " - " & [CAP] & " " &
[citta] & " (" & [PR] & ")" AS Generalita FROM Nominativi ORDER BY
Nominativi.Nominativo;
Numero di colonne = 2
Colonna associata = 1 (se vuoi che restituisca il Num, altrimenti 2)
Larghezza colonne = 0;7 (se non vuoi mostrare la colonna Num)
Esempio di codice per estrarre il valore Num (ovviamente dopo aver
valorizzato la combo):
MsgBox Me.Committente
Esempio di codice per estrarre la seconda colonna:
MsgBox Me.Committente.Column(1)
>
> Altra questione. Nella stessa maschera ho una casella combinata. Tramite
> lo stesso script VBA vorrei prendere tutte le righe.
> Ho cercato di fare quello che è scritto qui:
> http://www.sitocomune.com/forms/forms111.htm
>
> Ma dice ceh ItemData non è uan sua proprietà
>
> Cosa sbaglio?
>
> Grazie.MT
Qui finalmente parli di "casella combinata"...
La proprietà ItemData esiste per le combo ma richiede un numero di indice.
Per farti
un esempio metti un pulsante sulla maschera e sull'evento click scrivi:
Dim i As Integer
For i = 1 To Me.Committente.ListCount
MsgBox Me.Committente.ItemData(i - 1)
Next i
Otterrai tanti msgbox per quante sono le righe della combo.
Da questo ne potrai dedurre un codice per scorrere l'elenco e restituire
ogni singolo valore.
Altra strada è quella di aprire un recordset basato sulla stessa select che
alimenta la combo e, via codice, ne fai quello che vuoi.
Ciao, Carlo