Newsgroup: it.comp.appl.access
Titolo: memorizzare i dati di una listbox multiselect

Ho una tabella T con 3 campi (C1,C2,C3) e la relativa maschera.
Ciascun campo preleva dati da una tabella diversa.
Ora, nella maschera io scelgo UN valore per C1 e UN valore per C2,
utilizzando una combo box. Fin qui tutto ok
Per C3 voglio che ci sia la possibilità di scegliere più opzioni, quindi
utilizzo una listbox con multiselect impostato a 1.
Il problema è che non riesco a memrizzare questi dati in tabella.
Se nella maschera, io scelgo, ad esempio
C1: x
C2: y
C3: a,d,f,g
Quello che vorrei ottenere nella tabella T è questo:
C1    C2    C3
x        y        a
x        y        d
x        y        f
x        y        g
Invece quello che ottengo è un solo record con C!1=x, C2=y e C3=null
Come risolvo il problema?
Grazie
--
***Alessandro***


wrote:

Devi creare un pezzo di codice che iteri sugli elementi selezionati
della list-box e che utilizzando un recordset aggiunga i record.
Utilizza la proprietà SelectedItems della list box per scorrere
l'insieme degli elementi selezionati.
Roberto Pasqualini

 Come risolvo il problema?
Non puoi usare una maschera associata alla tabella per fare questa cosa,
visto che in quella maniera i controlli sono associati ai campi di un
singolo record.
Quello che vuoi fare tu lo puoi fare via codice.
A grandi linee quello che devi fare tu è:
utilizzare un recordset aperto sulla tabella dove vuoi aggiungere i record.
Fare un ciclo sulle righe della listbox
Per ogni riga selezionata fare un addnew sul recordset con i valori comuni e
il valore della riga corrente
Fine
Il tutto associato al clic di qualche pulsante.
Antonio

 ha scritto nel messaggio
news:QvIZ8.3579$GV2....@twister2.libero.it...

Vai sul Sito Comune (link qui sotto), Sezione Reports; prova a leggere la
FAQ "Come si può filtrare un report in base alla selezione multipla
effettuata su una casella di riepilogo?".
Naturalmente tu, anziché un report, filtrerai una maschera (DoCmd.OpenForm
invece di DoCmd.OpenReport).
Oppure userai strCriteri per impostare la proprietà Filter della tua
maschera, quindi imposterai la proprietà FilterOn.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:RXQZ8.4320$s74....@twister1.libero.it...



[CUT]
Quando rispondi ad un messaggio, rispondi dopo e non prima del testo dei
messaggi precedenti.
Comunque non riesco a capire cosa vuoi dire; cosa intendi per "come si
effettua una conessione al database" ??


 Roberto
Se voglio aggiungere record ad una tabella tramite codice visual basic, se
non sbaglio è necessario usare l'oggetto recordset, ma prima di far questo
si deve accedere al database. Io lo so fare in ASP, con Vbscrip, ma non  so
se qui è la stessa cosa.
In asp farei:
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "driver={Microsoft Access Driver
(*.mdb)};dbq="&Server.MapPath("C:/blablabla")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "news", conn, 3, 3
rs.addnew
rs("campo1")="tizio"
rs("campo2")="caio"
rs.update
rs.close
conn.close
spero di essermi spiegato...

 spero di essermi spiegato...
Se, come sembra, usi ADO, va bene cosě.



Cosě com'č non funziona. penso che si debba includere la libreria ADODB nel
codice. Come si fa?

 ha scritto nel messaggio
news:4X1%8.19159$GV2.4...@twister2.libero.it...

Per aggiungere la libreria DAO ai riferimenti del tuo database, apri un
modulo qualsiasi (volendo anche di classe) del tuo database, dal menu
Strumenti seleziona Riferimenti...; dalla finestra di dialogo attiva con uno
"svirgolino" la libreria DAO e posiziona tale riferimento prima dei
riferimenti alla libreria ADO.


[CUT]
Non l'hai mai detto, ma do per scontato che usi A2000 o A2002.
