Newsgroup: it.comp.lang.visual-basic
Titolo: casella combinata ed ADO

Ciao a tutti,
in un piccolo programma che sto portando avanti, ho una schermata che mi
permette di inserire dei dati in un database Access 97. L'accesso ai dati lo
faccio tramite ADO e codice.
Ho da poco cambiato delle caselle di testo con delle combo box.
Facevo:
rsLog.Addnew
.
.
.
rsLog!mioRtx = txtMyRtx.Text
.
.
rsLog.Update
e non mi ha mai dato problemi, sia nel caso in cui il txtMyRtx fosse vuoto,
sia nel caso in cui avessi scritto qualche cosa.
Adesso....
rsLog.Addnew
.
.
rsLog!mioRtx = cmbRtx.Text
se in questo momento, prima ancora di chiamare il metodo Update del
recordset, il cmbRtx e' vuoto, mi viene restituito questo errore...
"Errore di runtime (e un bella sfilza di numeri)
Si sono verificati errori in un'operazione OLE Db composta da piu' passaggi.
Controllare i singoli valori di stato OLEDB, se disponibili.
Nessuna operazione eseguita."
E' sufficiente inserire un valore qualunque nella casella combinata e questo
non appare, oppure (cosa che ho fatto), scrivere un:
If cmbRtx.Text <> "" then rsLog!mioRtx = cmbRtx.Text
e risolvo tutto.
Mi piacerebbe pero' sapere perche' si comporta in questa maniera.
Idee?
Ciao... Maurizio

 Mi piacerebbe pero' sapere perche' si comporta in questa maniera.
Forse il campo mioRtx non accetta stringa vuota?

 Forse il campo mioRtx non accetta stringa vuota?
...
No, nella struttura di Access, tale campo non e' richiesto.
Anche se cosi' fosse, lo stesso errore avrebbe dovuto darlo con:
rsLog!mioRtx = txtMyRtx.Text quando la casella di testo e' vuota, e ancor di
piu' facendo
If cmbRtx.Text <> "" then....
se la combo e' vuota, non c'e' nessuna istruzione che setta il valore del
campo rsLog!mioRtx.
Ciao... Maurizio

[Mizio = 
circa_...@tiscali.it
 in
NzQlc.37541$
Qc.14...@twister1.libero.it
] ha scritto:

Non so che dirti... Versione di ADO utilizzata?
Vedi qui:
http://makeashorterlink.com/?B2FD21538
http://support.microsoft.com/default.aspx?scid=kb;en-us;239781

 Non so che dirti... Versione di ADO utilizzata?
E SP di VB? E di Jet?
Prova a fare cosģ:
rsLog!mioRtx = cmbRtx.Text & ""
E facci sapere se funziona. (Nota: Le virgolette sono appiccicate)

 rsLog!mioRtx = cmbRtx.Text & ""
...
Mah, come dicevo, il problema l'ho risolto facendo aggiornare il campo solo
se la proprieta' Text della combo e' diversa da "" . Quindi la mia
applicazione funziona, volevo solo capireperche' si comporta cosi'.
Comunque faro' la prova che mi suggerisci, cercando di dare anch altre
spiegazioni.
Appena ho tempo... ora vado a farmi 150 + 150 Km per lavoro (ho una
voglia!!).
Ciao e grazie... Maurizio

 di dare anch altre spiegazioni.
Semplicemente ieri sera ho cercato su MSDN e sul NG indicando il codice
d'errore.
Fra le varie ipotesi c'era quella di VB non aggiornato almeno al SP4, ADO a
prima della 2.5 o 2.6, Jet e compagnia bella. Qualcuno suggeriva di usare
quella "tecnica" per aggirare il problema (chiaramente dovuto alle mega
bevute di quelli di ADO)

 d'errore.
...
Ops, forse mi sono mal spiegato.
Le "maggiori spiegazioni", non erano volute da te, volevo dire che postero'
qualche dettaglio in piu'.
Cmq sto facendo scaricare (qui non esiste ADSL) da un amico il Service Pack
5, e visto che ci sto, anche il 4 per il win2000
Per quel che riguarda ADO, nei riferimenti ho il 2.5, ma ho anche installato
il 2.7, magari provo con quello.
A presto per altri dettagli. Ciao e grazie... Maurizio