Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Casella Combinata Principiante

Ciao, ve lo giuro ho provato a risolvere da solo ma forse il libro che ho io
da qualcosa per scontato quindi non mi trovo.
ecco il problema: prendo una combo, la piazzo sulla form, la collego al
campo con "datasuorce" e "dataField" in esecuzione il campo è collegato, ma
nella lista a discesa non compare quello che vorrei e cioè l'elenco dei
clienti gia registrati in modo da poter sceglierne uno (cosa che mi riesce
bene con access ).
vi prego, un aiuto.
N.B. ho la versione VB 6

...


Allora:
come codice non ho scritto niente, recordsuorce lo ho impostato nelle
proprietà della combo.
il risultato che ottengo è che nella combo compare il cliente selezionato
per i record già inseriti, ma per i record nuovi non mi da la lista e quindi
la possibilità di poterne scegliere uno
spero di essermi spiegato un pò meglio.
se c'è bisogno di un codice, e non vi è di molto disturbo me lo potete
mandare ?
P.S. proprio oggi ho trovato un'altro programma come esempio, solo che
questo aveva nella casella combinata dei valori predefiniti e fissi e aveva
un codice del genere:
Private Sub Form_Load()
' Load the Combo boxes
ComboColor.AddItem "rosso"
ComboColor.AddItem "bianco"
ComboColor.AddItem "giallo"
' Specify database name.
Data1.DatabaseName = theDatabase
End Sub
solo che questo nel mio caso non va bene
Aiutoooo!!!!!

Scusa se ti rispondo solo ora ma non avevo ancora avuto modo di leggere la
tua precisazione e ora ho le idee un po' più chiare.
Innanzi tutto, per la gestione dei dati da database ti consiglio di non
usare la combobox ma la datacombo (esteticamente identica ma con
funzionalità che ti aiutano a gestire i dati di un DB).
Per farlo clicca con il pulsante dx sulla barra degli strumenti (dove hai
anche l'icona della combobox per intenderci), seleziona Componenti e,  dalla
finestra che appare, seleziona Microsoft Data Bound List.
Sulla barra degli strumenti ti appariranno due icone (Combo e List fatte
proprio per gestire database).
Presupponendo che tu abbia settato correttamente il controllo Dao o Ado,
dalla finestra proprietà della combo che disegni sul form devi settare:
- RowSource ti apparirà la lista dei controlli data che hai inserito sul
form e tu scegli quello che vuoi usare
- ListField ti appariranno tutti i nomi dei campi disponibili; quello che
selezionerai ti popolerà la list, cioè, l'elenco a discesa che ti appare
quando clicchi la combo.
Così il tuo problema è risolto, hai automaticamente popolato la tua combo
ma, già che ci siamo, ti spiego un'altra utilità di questo controllo.
Esistono altre due proprietà utili da settare:
- DataSource (da settare esattamente come RowSource selezionando il
controllo data)
- BoundColumn (da settare esattamente come ListField, cioè, selezionando un
campo del database).
L'utilità di questa seconda impostazione è presto spiegata.
Immagina di avere un database con due tabelle, in una hai un campo che
contiene un nr. univoco che identifica una persona (ad es. un codice cliente
o un semplice contatore come nei file mdb di access) e il suo cognome,
nell'altra hai un campo con tutti gli articoli venduti e un campo dove
identifichi il cliente; in questo campo, per evitare omonimie, ci puoi
salvare il codice cliente che abbiamo detto sopra invece del cognome.
Ecco che qui diventa utile boundcolumn. Se su ListField selezioni il cognome
e su boundcolumn il codice cliente, quando l'utente farà click sulla combo,
la proprietà boundtext restituirà il codice cliente corrispondente al
cognome selezionato che potrà essere usato in una query per estrarre dalla
seconda tabella gli articoli comprati da Tizio.
Es:
Private Sub DBCombo1_Click(Area As Integer)
Dim i As Integer
Dim query As String
i = DBCombo1.BoundText
query = "select * from Articoli Where ClienteID = " & i
......... setti il controllo dati per usare la query e magari popolare una
tabella
End Sub
Oppure puoi semplicemente usare il valore restituito da boundtext senza
query e popolare una textbox (ad es. la lista ha il campo cognome e
boundtext ti restituisce il nome).
Lo so che quest'ultima parte non è direttamente inerente la tua domanda ma
in genere è una delle prossime che arriva quindi, fare per fare ...
Ciao
matpascal

Ti ringrazio mi hai salvato tutto d'un pezzo, ero proprio fuori strada ! in
quel controllo ci avrei solo sbattuto la testa.
(solo per "Matpascal", ti ho scritto anche in privato perche dato il tempo
che è passato forse nessuno mi risponderà più, se comunque non ti va di
rispondermi ancora ti ringrazio per l'aiuto che mi hai gia dato e.....
AMICI COME PRIMA )
questa è veramente una piccola cosa volevo chiederti ancora:
ho due tabelle e due maschere: clienti e prenotazioni, la combo la ho nella
maschera prenotazioni e mi deve dare i clienti registrati, ora il campo lo
collego alla tabella prenotazioni, magari solo con il CodiceCliente, ma la
lista la devo prendere dalla tabella clienti. ho visto che nella Row suorce
ho solo la possibilità di scegliere la tabella prenotazioni, forse devo
mettere anche un DATA collegato alla tabella clienti ?
Mi viene a questo punto un dubbio, ma allora anche "data" deve essere
sostituito da "adodc" per collegare la form alla tabella ?
A che servono quei controlli che per sbaglio ho usato prima ? ( Data,
comboBox )
Grazie 1'000

mettere anche un DATA collegato alla tabella clienti ?
ControlloData che ha come sorgente la tabella clienti e che è legato alla
combo dove ti popola la lista a discesa con i nomi e dove ti restituisce  il
codice cliente  dalla boundtext
All'evento click generi una queri usando il codice cliente che ti è
ritornato con il quale sposti il Rs di un altro controllo data (che contiene
tutti i dati della tabella prenotazioni) sul record che ha quel codice
cliente.
Questo secondo controllodata sarà legato- presumo -  agli altri controlli
(ad es. textbox per inizio permanenza, textbox partenza, chekbox uso box
auto, ecc.? ). Con lo spostamento su quel record, i valori dei singoli
controlli si aggiorneranno di conseguenza con i dati contenuti nella tabella
prenotazioni in base al codice cliente usato.
Ma ho capito quello che volevi oppure ho tirato sassi al sole? Spero
comunque di esserti stato utile.
Ciao
matpascal