Newsgroup: it.comp.appl.access
Titolo: variabile listbox

salve a tutti
vorrei creare una variabile di tipo listbox (se possibile)
il mio esempio è questo:
dim aa as listbox
set aa= elenco30
facendo cosi creo un collegamento ad un elenco.
dim aa as listbox
set aa= new listbox
in questo caso mi da errore 429 il componente activex non è in grado
di creare l'oggetto
c'è qualcuno che sa aiutarmi?
forse devo aggiungere un nuovo componente?
grazie per l'aiuto

 ha scritto nel messaggio
news:1141198857.7...@i40g2000cwc.googlegroups.com...
salve a tutti
vorrei creare una variabile di tipo listbox (se possibile)
il mio esempio č questo:
dim aa as listbox
set aa= elenco30
facendo cosi creo un collegamento ad un elenco.
dim aa as listbox
set aa= new listbox
in questo caso mi da errore 429 il componente activex non č in grado
di creare l'oggetto
c'č qualcuno che sa aiutarmi?
forse devo aggiungere un nuovo componente?
grazie per l'aiuto
ciao
prova in questo modo:
Dim aa As Object
Set aa = New Access.ListBox
a me non ha dato errori
nik

 forse devo aggiungere un nuovo componente?
L'oggetto Listbox fa parte della "Microsoft Access Object Library" che deve 
essere inclusa tra i riferimenti del VBA.
Ma hai provato a compilare? E non ti da errori?
-- 
PBsoft di Gabriele Bertolucci
www.pbsoft.it
 

ho verificato che ho nei riferimenti "Microsoft Access 11.0 Object
Library"
e continua a darmi errore,
ho provato con
Dim aa As Object
Set aa = New Access.ListBox
e continua a darmi lo stesso errore.
uso access 2003.
Intendevo usare una variabile listbox per conoscere le quantità di
dati contenuti (listcount), ho provato anche ad usare un array
"dim aa() as byte "
che posso ridimenzionare quando voglio,
"redim preserve aa(x)"
ma non ho un modo "agevole" per conoscere la quantità di dati in esso
inseriti.
 grazie comunque per l'aiuto, rimango in ascolo.

 la quantità di dati in esso inseriti.
Ma sei proprio sicuro?
Hai consultato l'help di Access?
Se provi a cercare la stringa "dimensione array" trovi proprio quello che ti 
serve.
Con gli array puoi utilizzare
    UBound(nomearray) - LBound(nomearray)
per sapere quanti elementi contiene l'array.


con Ubound e Lbound conosco i limiti dell'array non quanti dati vi sono
inseriti
dim a(100) as byte
Ubound(a)  è 100
Lbound(a) è 0
ho anche reinstallato office ma non funziona lo stesso.
Sapete se sul sito comune c'è qualcosa che usa una variabile listbox?
almeno se quello mi funziona so che sbaglio qualcosa io.
grazie per gli aiuti.

 ha scritto nel messaggio
news:1141198857.7...@i40g2000cwc.googlegroups.com...
salve a tutti
vorrei creare una variabile di tipo listbox (se possibile)
il mio esempio č questo:
dim aa as listbox
set aa= elenco30
facendo cosi creo un collegamento ad un elenco.
dim aa as listbox
set aa= new listbox
in questo caso mi da errore 429 il componente activex non č in grado
di creare l'oggetto
c'č qualcuno che sa aiutarmi?
forse devo aggiungere un nuovo componente?
grazie per l'aiuto
forse siamo partiti male...
dicci cosa ti serverebbe piuttosto che intubarci in un listbox che casomai
non era la strada giusta...
nik

 almeno se quello mi funziona so che sbaglio qualcosa io.
Come ti ha suggerito nick_dent, prova a spiegare meglio cosa vuoi fare e 
quale è il tuo problema logico, così vediamo se l'utilizzo di un oggetto 
Listbox è proprio la scelta migliore.


 
usa una collezione. Tra l'altro e' anche di tipo associativo (i.e. gli 
puoi dare una chiave). La proprieta' count ti dice quanti sono
Usi "add" per aggiungere e "remove" per togliere ed al contrario 
dell'array non hai necessita' di "preserve" o ridimensionamenti vari.
Tra l'altro la "preseve" puo essere molto lenta.
E sebbene la letteratura dica che possono essere lente non mi risulta.
Di fatto la listbox e' una collezione.
--
a.cara

> usa una collezione.
Alessandro, come fai ad essere cosě sicuro che filiprat abbia bisogno di una 
collection?
Lui non ha ancora spiegato per bene cosa vuole fare e quali sono i dati con 
cui deve lavorare.
Le collection sono uno strumento interessante ma se lui volesse fare un 
ordinamento si troverebbe di fronte ad un problema.


 ordinamento si troverebbe di fronte ad un problema.
ne 90% dei casi proprio la presenza dell'indice associativo evita di 
dover fare ordinamenti e se inoltre implementa la proprieta' "parent" o 
"linkedlist" ha un bel db reticolare in memoria navigabile come meglio 
non si potrebbe
Le collezioni, per me,  sono uno strumento normale anzi non ne posso 
piu' fare a meno. Ho quasi abolito gli array classici. Copioincollo 4 
istruzioni tanto per capire
La cosa gestisce una tabella di configurazione in coppia chiave-valore
(piu' l'Utente ma e' un di cui)
Ovviamente e' una classe molto carina da vedere sotto debug
...................................................
Private Items As New Collection
Private Chiavi As New Collection
Private Sub Class_Initialize()
Dim rs As Variant
Items.Add Item:="", Key:="Utente"
Set rs = CurrentDb.OpenRecordset("Config")
Do Until rs.EOF
     Items.Add Item:=rs!valore.Value, Key:=rs!Chiave
     Chiavi.Add Item:=rs!Chiave.Value, Key:=rs!Chiave
     rs.MoveNext
Loop
End Sub
Function Count() as long
     Count = Items.count
End Function
Function getItem(pParm As String)
     getItem = Items(pParm)
End Function
Sub setItem(pParm As String, pValue As Variant)
On Error Resume Next
     Items.Remove (pParm)
     Items.Add pValue, pParm
     Chiavi.Remove (pParm)
     Chiavi.Add pParm, pParm
End Sub
Function getCredenziali() As Boolean
getCredenziali = true
     If Utente = "" Then
         MsgBox "Inserire le credenziali di accesso", vbInformation
         getCredenziali = False
     End If
End Function
Property Get Utente() As String
     Utente = Items("Utente")
End Property
Property Let Utente(pParam As String)
     Items.Remove "Utente"
     Items.Add pParam, "Utente"
End Property
..............................................
P.S. Cmq ogni tanto mi capita di "azzeccarci"
--
ac

Alessandro Cara wrote:
[cut]
P.S.
Per estensione potrebbe gestire tutte le variabili (sempre coppia 
chiave-valore)  di cui avessi bisogno, senza definirle
--
ac

grazie per il tempo che avete perso, francamente di collection non
avevo mai sentito parlare ,cercherò di capirci qualcosa.
ecco un esempio semplice per spiegare il mio problema:
supponiamo di voler simulare l'uscita dei numeri del bingo, di avere
caricato su di un listbox i numeri da uno a 90 e di volerli estrarre
casualmente
su elenco30 vi sono i primi 90 numeri,
For i = 1 To 90
 num = (Int((Elenco30.ListCount * Rnd) + 1)) - 1
numeroestratto = Elenco30.ItemData(num)
 Elenco30.RemoveItem (num)
 Next i
praticamente ho su questo listbox dei valori tutti diversi fra loro che
vengono tolti casualmente.
nel programma che volevo creare vi sono circa un centinaio di queste
listbox quindi per comodità volevo provare ad usare la variabile
listbox.
Potrei benissimo usare un array che contiene i miei X numeri ma dopo
ogni "estrazione" dovrei shiftare tutti i numeri.
Comunque il fatto che mi da errore quando scrivo
Dim aa As Object
Set aa = New Access.ListBox
non me lo so spiegare.
se compilo non mi da errori .
spero di essere stato chiaro.
Saluti a tutti e grazie per la diponibilità.