Newsgroup: it.comp.appl.access
Titolo: Visualizzare recordset in listbox con A2k (ADP)

Stò cercando di fare una cosa di questo tipo:
Apro una maschera con 2 controlli, listbox1 e cmdbutton1.
Su form.open la maschera non fà nulla.
Con cmdbutton1_click
   1)collego ODBC al database X (database di default)
   2)collego ODBC al database Y
   3)popolo recordsetX
   4)popolo recordsetY
   5)popolo recordsetZ (database Y) con le differenze X-Y
   6)DOVREI caricare listbox1 con recordset Z
   7)chiudo i collegamenti ODBC lasciando i dati in listbox1
Ho provato di tutto, ho i dati nei recordset posso fare qualsiasi cosa 
ma non ho ancora una soluzione per visualizzare questo dannato recordset 
Z nella listbox1 :°(
Tra l'altro i record sono molti e la soluzione Join(array(),";") non può 
funzionare.
Ancora un po' e mi vien da piangere.
Qualche suggerimento please?
Grazie a tutti
-- 
Claudio(BS)
L'unico problema per l'uomo non sta nella difficoltà delle sue imprese
ne' nella quantità di denaro necessario per compierle, ma nella durata
della sua esistenza. (Claudio 14.02.2004)
NB. Protezione antispam
Per rispondere aggiungere claudio

 Grazie a tutti
Potresti mostrare come fai a popolare con il recordset le ListBox...?
In ogni caso se usi ADP perchè devi passare per il Recordset..?
Non è più comodo una SP o una VIEW..?
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Grazie


 
Aggiornamento della situazione (nel caso interessasse a qualcuno).
Se carico i dati del recordsetZ in una txtBox me li visualizza tutti 
senza nessun problema, sono solo le combobox e le listbox che non 
vogliono saperne di visualizzare il recordset!!
Ho provato anche con un progetto connectionless ma beh! stendiamo un 
velo pietoso sui risultati.
A questo punto mi viene da chiedere se è possibile utilizzare una 
casella di testo come origine dati per una listbox :-O
byEz


 byEz
Compilando come hai fatto attraverso la proprietà RowSource
mediante l'assegnazione di una stringa la List/Combo hanno
una limitazione di caratteri 2048.
Se usi AXP puoi usare il metodo Additem, altrimenti devi 
usare il metodo di CallBack sui controlli(non è molto conosciuto)
ma è molto potente, ti passo quì la funzione da adattare alle
tue esigenze, ma se non l'hai mai usata non sarà semplicissima.
In Tipo Origine Riga dovrai scrivere il nome della Funzione di
Callback
TipoOrigineRiga = FillList ' senza parentesi o apostrofi vari
Poi prova a mettere un BreakPoint per capire come viene gestita.
In pratica viene eseguita 4/5 volte solo per passare la formattazione
ed il Numero di Righe da compilare(che sarà il tuo RecordCount), quindi
i cicli successivi dovrai gestire il MoveNext e l'assegnazione.
Fai attenzione che in base al numero di colonne per ogni Record
la esegue n volte.
Se non sbaglio in qualcuno dei miei demo è usata.
Private Function FillList(ctl As Control, varID As Variant, varRow As
Variant, _
                          varCol As Variant, varCode As Variant) As
Variant
 
   'Eventuale dichiarazione variabili                       
 
   On Error GoTo ErrHandler
 
   Select Case varCode
 
       Case acLBInitialize
 
       Case acLBOpen
            varRet = Timer
 
       Case acLBGetRowCount
            varRet = NumeroROW
 
       Case acLBGetColumnWidth
            varRet = ctl.ColumnWidths
 
       Case acLBGetColumnCount
            varRet = 2
 
       Case acLBGetValue
            ' Recupera il valore dal Recordset o altro
            ' l'indice di Riga e Colonna passato dal CallBack
            If varCol = 0 Then
                  varRet = NomeRecordset.Field(0)
            ElseIf varCol = 1 Then
                  varRet = NomeRecordset.Field(1)
            End If
       Case acLBGetFormat
       ' Nessuna Formattazione
 
       Case Else
   End Select
 
   FillList = varRet
 
ExitHere:
   Exit Function
ErrHandler:
   Resume ExitHere
End Function
ma sostengo sempre che una SP lato Server sia la cosa migliore.
Perderai un pò per capire come strutturarla ma non è nemmeno 
paragonabile.


 [CUT]
[CUT]

Per la SP, come dici tu, dovrei avere del tempo in più (utopia).
Dato che tutto è pronto e che l'unico problema è la visualizzazione 
della listbox, per ora mi *arrangio* così.
Grazie per l'aiuto, provo subito la funzione e vediamo se ... funziona ;-)
