|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2000
Città: S.Croce s/Arno - Pisa - Toscana
Messaggi: 1015
|
[VB6] errore "Oggetto non valido o non impostato"
Salve a tutti, oggi mentre portavo avanti un programmetto mi sono imbattuto in questo spiacevole errore. Premetto che sul sito Microsoft ho trovato che la causa di questo errore è Microsoft Jet 4.0 e dicevano appunto di aggiornarlo alla versione Service Pack 6. L'ho aggiornato, adesso la versione della libreria che ho è la 4.0.8618.0 e quella del SP6 è 4.0.6807.0 quindi è ultra aggiornato ma il problema persiste.
Praticamente ho un form con un controllo DBCombo che prende le ragioni sociali dal DB. Al Change di questo DBCombo parte la sub associata che fa una query con il valore inserito nel DBCombo e se trova qualcosa riempie i campi del form. La cosa funziona perfettamente se scrivo da tastiera il valore nel DBCombo, ma se seleziono il valore cliccandoci, a seconda del valore selezionato, salta fuori l'errore in oggetto. L'errore lo da sul controllo data che accede al DB ma la cosa strana è che l'errore non salta fuori al primo riferimento al controllo data, ma dopo che ha già scorso buona parte le recordset. A questo, punto dirrete voi, starò tentando di fare riferimento a qualcosa che nel DB non c'è ma non è così perchè se io metto un break point in un qualsiasi punto della sub funziona tutto alla perfezione ![]() Chiedo aiuto a voi, sperando di essere riuscito a spiegarmi, perchè una cosa del genere non mi era mai accaduta e non so più cosa fare! Grazie a tutti ![]()
__________________
Il mio album su Flickr :: Video Laurea Honoris Causa ad Alan Kay, Universita' di Pisa :: Thinking Different, PowerBook G4 12" 1GHz, iMac Core 2 Duo 20" |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2003
Città: addio fabriANO... mò sto a Roma ahò!!
Messaggi: 579
|
anche io ci ho
![]() ![]() ![]() ![]() Non so se può funzionare anche per te, ma... il database chiudilo ALLA FINE ![]() spero che sia d'aiuto ![]()
__________________
Tavshan Pasha Bazar: Oggetti etnici per il relax! |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: S.Croce s/Arno - Pisa - Toscana
Messaggi: 1015
|
Mi sono dimenticato di dirvi una cosa abbastanza importante, credo. I dati che il controllo data va a tirar fuori dal DB comprendono 3 campi con valore vero/falso e 3 campi di testo così che se il primo dei tre campi vero/falso è vero nel form viene inserito il valore del campo testo corrispondente. Detto questo il problema si presenta in un caso particolare, quando dopo aver selezionato un cliente che ha tutti e tre i campi vero/falso impostati su falso, vado a selezionare un cliente che ha almeno uno di questi tre campi impostato a vero. Nello specifico il problema si presenta non al momento del controllo se il campo è vero o falso, ma quando prendo dal controllo data il valore del campo associato a quello impostato a vero. La cosa strana è che quel valore sul DB c'è, come ho detto prima se metto un break point in un qualsiasi punto del codice funziona tutto.
__________________
Il mio album su Flickr :: Video Laurea Honoris Causa ad Alan Kay, Universita' di Pisa :: Thinking Different, PowerBook G4 12" 1GHz, iMac Core 2 Duo 20" |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2000
Città: S.Croce s/Arno - Pisa - Toscana
Messaggi: 1015
|
Quote:
Dici che mi conviene crearmi tutto da codice? Uso i controlli data perchè mi semplificano abbastanza la vita ![]()
__________________
Il mio album su Flickr :: Video Laurea Honoris Causa ad Alan Kay, Universita' di Pisa :: Thinking Different, PowerBook G4 12" 1GHz, iMac Core 2 Duo 20" |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: S.Croce s/Arno - Pisa - Toscana
Messaggi: 1015
|
Ho provato anche a chiudere la connessione al DB tramite il controllo data ma fa uguale. Vi riporto il codice anche se è scritto alla mia maniera e magari non rispecchia le regole di buona stesura del codice
![]() Codice:
Private Sub dbcRagSoc_Change() datControlloRagSoc.DatabaseName = App.Path & "\master.mdb" datControlloRagSoc.RecordSource = "SELECT * FROM CLIENTI WHERE RAGIONE_SOCIALE='" & dbcRagSoc.Text & "' AND EFFETTIVO=true" datControlloRagSoc.Refresh txtCitta.Text = "" txtCodFisc.Text = "" txtEmail.Text = "" txtFax.Text = "" txtPiva.Text = "" txtProvincia.Text = "" txtReferente.Text = "" txtTelefono.Text = "" txtVia.Text = "" txtWeb.Text = "" txtCodice.Text = "" txtnumcontratto.Text = "" DTPicker1.Value = Date chkOpz1.Value = 0 chkOpz2.Value = 0 chkOpz3.Value = 0 txtOpz1.Text = "" txtOpz2.Text = "" txtOpz3.Text = "" optMensile.Value = False optBimestrale.Value = False optTrimestrale.Value = False optSemestrale.Value = False optLavoroEseguito.Value = False cmbInizio.Text = "Inizio Fatturazione" optRiba.Value = False txtAbiriba.Text = "" txtCabriba.Text = "" optRid.Value = False txtAbirid.Text = "" txtCabrid.Text = "" txtCcrid.Text = "" txtCin.Text = "" optDiretta.Value = False lstCodici.ListItems.Clear lstPrelievi.ListItems.Clear chkModificato.Value = 0 abilitaModifica = False indiceUnita = 0 unitaLegale = False If datControlloRagSoc.Recordset.RecordCount = 0 Then 'nessun riscontro txtCitta.Enabled = False txtCitta.BackColor = &H8000000F txtCodFisc.Enabled = False txtCodFisc.BackColor = &H8000000F txtEmail.Enabled = False txtEmail.BackColor = &H8000000F txtFax.Enabled = False txtFax.BackColor = &H8000000F txtPiva.Enabled = False txtPiva.BackColor = &H8000000F txtProvincia.Enabled = False txtProvincia.BackColor = &H8000000F txtReferente.Enabled = False txtReferente.BackColor = &H8000000F txtTelefono.Enabled = False txtTelefono.BackColor = &H8000000F txtVia.Enabled = False txtVia.BackColor = &H8000000F txtWeb.Enabled = False txtWeb.BackColor = &H8000000F txtCodice.Enabled = False txtCodice.BackColor = &H8000000F txtnumcontratto.Enabled = False txtnumcontratto.BackColor = &H8000000F DTPicker1.Enabled = False chkOpz1.Enabled = False chkOpz2.Enabled = False chkOpz3.Enabled = False txtOpz1.Enabled = False txtOpz1.BackColor = &H8000000F txtOpz2.Enabled = False txtOpz2.BackColor = &H8000000F txtOpz3.Enabled = False txtOpz3.BackColor = &H8000000F optMensile.Enabled = False optBimestrale.Enabled = False optTrimestrale.Enabled = False optSemestrale.Enabled = False optLavoroEseguito.Enabled = False cmbInizio.Enabled = False optRiba.Enabled = False txtAbiriba.Enabled = False txtAbiriba.BackColor = &H8000000F txtCabriba.Enabled = False txtCabriba.BackColor = &H8000000F optRid.Enabled = False txtAbirid.Enabled = False txtAbirid.BackColor = &H8000000F txtCabrid.Enabled = False txtCabrid.BackColor = &H8000000F txtCcrid.Enabled = False txtCcrid.BackColor = &H8000000F txtCin.Enabled = False txtCin.BackColor = &H8000000F optDiretta.Enabled = False cmdInserisciCodice.Enabled = False cmdInserisciPrelievo.Enabled = False cmdElimina.Enabled = False Else 'ho trovato un cliente potenziale corrispondente alla ragione sociale 'devo caricare i dati dal DB txtCitta.Enabled = True txtCitta.BackColor = &H80000005 txtCodFisc.Enabled = True txtCodFisc.BackColor = &H80000005 txtEmail.Enabled = True txtEmail.BackColor = &H80000005 txtFax.Enabled = True txtFax.BackColor = &H80000005 txtPiva.Enabled = True txtPiva.BackColor = &H80000005 txtProvincia.Enabled = True txtProvincia.BackColor = &H80000005 txtReferente.Enabled = True txtReferente.BackColor = &H80000005 txtTelefono.Enabled = True txtTelefono.BackColor = &H80000005 txtVia.Enabled = True txtVia.BackColor = &H80000005 txtWeb.Enabled = True txtWeb.BackColor = &H80000005 txtCodice.Enabled = True txtCodice.BackColor = &H80000005 txtnumcontratto.Enabled = True txtnumcontratto.BackColor = &H80000005 DTPicker1.Enabled = True chkOpz1.Enabled = True chkOpz2.Enabled = True chkOpz3.Enabled = True optRiba.Enabled = True optRid.Enabled = True optDiretta.Enabled = True cmdInserisciCodice.Enabled = True cmdInserisciPrelievo.Enabled = True cmdElimina.Enabled = True 'datControlloRagSoc.Recordset.MoveFirst 'carico le informazioni del cliente With datControlloRagSoc If IsNull(.Recordset![CODICE_CLIENTE]) Then txtCodice.Text = "" Else txtCodice.Text = .Recordset![CODICE_CLIENTE] End If If IsNull(.Recordset![PARTITA_IVA]) Then txtPiva.Text = "" Else txtPiva.Text = .Recordset![PARTITA_IVA] End If If IsNull(.Recordset![COD_FISC]) Then txtCodFisc.Text = "" Else txtCodFisc.Text = .Recordset![COD_FISC] End If txtTelefono.Text = .Recordset![TELEFONO] If IsNull(.Recordset![FAX]) Then txtFax.Text = "" Else txtFax.Text = .Recordset![FAX] End If If IsNull(.Recordset![WEB]) Then txtWeb.Text = "" Else txtWeb.Text = .Recordset![WEB] End If If IsNull(.Recordset![E_MAIL]) Then txtEmail.Text = "" Else txtEmail.Text = .Recordset![E_MAIL] End If txtVia.Text = .Recordset![VIA] txtCitta.Text = .Recordset![CITTA] txtProvincia.Text = .Recordset![PROVINCIA] If IsNull(.Recordset![REFERENTE]) Then txtReferente.Text = "" Else txtReferente.Text = .Recordset![REFERENTE] End If txtnumcontratto.Text = .Recordset![NUMERO_CONTRATTO] DTPicker1.Value = .Recordset![DATA_CONTRATTO] If .Recordset![OPZIONE1] Then chkOpz1.Value = 1 txtOpz1.Text = .Recordset![COSTO_OPZIONE1] <- questi sono i punti in cui mi salta fuori l'errore End If If .Recordset![OPZIONE2] Then chkOpz2.Value = 1 txtOpz2.Text = .Recordset![COSTO_OPZIONE2] <- questi sono i punti in cui mi salta fuori l'errore End If If .Recordset![OPZIONE3] Then chkOpz3.Value = 1 txtOpz3.Text = .Recordset![COSTO_OPZIONE3] <- questi sono i punti in cui mi salta fuori l'errore End If End With 'carico le unità locali del cliente Dim queryUnita, queryCodici As String queryUnita = "SELECT * FROM LUOGHI_RITIRO LR WHERE LR.ID_CLIENTE=" & datControlloRagSoc.Recordset![ID_CLIENTE] With datCercaUnitaCliente .RecordSource = queryUnita .Refresh If .Recordset.RecordCount <> 0 Then 'se ci sono più luoghi di ritiro allora li mostro tutti nella lista .Recordset.MoveFirst Do While Not .Recordset.EOF lstPrelievi.ListItems.Add , , .Recordset![VIA_RITIRO] lstPrelievi.ListItems(lstPrelievi.ListItems.Count).SubItems(1) = .Recordset![CITTA_RITIRO] lstPrelievi.ListItems(lstPrelievi.ListItems.Count).SubItems(2) = .Recordset![PROVINCIA_RITIRO] If .Recordset![VIA_RITIRO] = txtVia.Text And .Recordset![CITTA_RITIRO] = txtCitta.Text And .Recordset![PROVINCIA_RITIRO] = txtProvincia.Text Then unitaLegale = True indiceUnita = lstPrelievi.ListItems.Count End If .Recordset.MoveNext Loop End If End With 'carico i codici del cliente queryCodici = "SELECT C.ID_CODICE, C.CODICE_CER, CC.QUANTITA FROM CODICI_CLIENTE CC, CODICI C WHERE C.ID_CODICE=CC.ID_CODICE AND CC.ID_CLIENTE=" & datControlloRagSoc.Recordset![ID_CLIENTE] With datCercaCodCliente .RecordSource = queryCodici .Refresh .Recordset.MoveFirst Do While Not .Recordset.EOF lstCodici.ListItems.Add , , .Recordset![CODICE_CER] lstCodici.ListItems(lstCodici.ListItems.Count).Tag = .Recordset![ID_CODICE] lstCodici.ListItems(lstCodici.ListItems.Count).SubItems(1) = .Recordset![QUANTITA] .Recordset.MoveNext Loop End With chkModificato.Value = 0 abilitaModifica = True datControlloRagSoc.Recordset.Close datControlloRagSoc.Database.Close End If End Sub Aiutatemi vi prego ![]()
__________________
Il mio album su Flickr :: Video Laurea Honoris Causa ad Alan Kay, Universita' di Pisa :: Thinking Different, PowerBook G4 12" 1GHz, iMac Core 2 Duo 20" |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Per intanto nn usare mai il controllo data, perchè è una merda, usa sempre i metodi manuali come da esempio!
E' un consiglio, ma te lo consiglio vivamente, anzi, stravivamente!! ehehhehe Dopo la pappa leggo tutta la pappardella ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
PS: sarebbe meglio che posti anche il database, altrimenti uno nn può fare le prove
![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: S.Croce s/Arno - Pisa - Toscana
Messaggi: 1015
|
Ho risolto!
Il problema stava (non chiedetemi il perchè) nel DBCombo, l'ho sostituito con una ComboBox e funziona tutto perfettamente! Ho tolto il controllo data ma con la DBCombo il problema persisteva anche se in maniera diversa. Grazie per i consigli ![]()
__________________
Il mio album su Flickr :: Video Laurea Honoris Causa ad Alan Kay, Universita' di Pisa :: Thinking Different, PowerBook G4 12" 1GHz, iMac Core 2 Duo 20" |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: S.Croce s/Arno - Pisa - Toscana
Messaggi: 1015
|
Cmq se vuoi fare delle prove il DB te lo allego
![]()
__________________
Il mio album su Flickr :: Video Laurea Honoris Causa ad Alan Kay, Universita' di Pisa :: Thinking Different, PowerBook G4 12" 1GHz, iMac Core 2 Duo 20" |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:47.