ERRORE: "Variabile dell'oggetto With non impostata"

sabato 09 gennaio 2010 - 14.15

86Marco Profilo | Expert

Nella mia applicazione tramite il seguente codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Quando eseguo il codice mi viene restiuito questo errore.

"Variabile oggetto o variabile del blocco with non impostata"

Perchè?
Aiutatemi grazie

lbenaglia Profilo | Guru

>Quando eseguo il codice mi viene restiuito questo errore.
>
>"Variabile oggetto o variabile del blocco with non impostata"
>
>Perchè?

Ah boh, dato che il codice che hai postato non contiene alcuna WITH ma ad esempio la riga "codicefiscale & "'")" che non è sintatticamente corretta

>Aiutatemi grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

86Marco Profilo | Expert

Ciao Lorenzo,
hai ragione, ma questa riga è stato un errore di taglia e incolla.
Tuttavia anche eliminado la riga che mi hai suggerito l'errore persiste.

Facendo il debug mi viene evidenziata la riga
Set cognome.Value = Me.cognometxt

Secondo me non ho utilizzato correttamente i parametri.
Sapresti aiutarmi?
Grazie

lbenaglia Profilo | Guru

>Secondo me non ho utilizzato correttamente i parametri.
>Sapresti aiutarmi?
Io ho sempre utilizzato oggetti Command per richiamare sp parametriche e dato che stai eseguendo un comando di INSERT non ha senso scomodare l'oggetto Recordset.
Qui trovi un paio di esempi:

ADO.Net
http://www.dotnethell.it/forum/messages.aspx?ThreadID=13913

ADO "classic"
http://groups.google.it/group/microsoft.public.it.sql/browse_frm/thread/08cffa517474e4df

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

86Marco Profilo | Expert

Ok provo e ti faccio sapere.
Un ultima cosa:
quale riferimento devo includere nel database per poter adoperare la connessione con OLE DB?

lbenaglia Profilo | Guru

>quale riferimento devo includere nel database per poter adoperare
>la connessione con OLE DB?
Non ci hai detto niente del tuo ambiente di sviluppo e del DBMS al quale vuoi connetterti, quindi non è possibile rispondere.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

86Marco Profilo | Expert

Access, utilizzo VBA

lbenaglia Profilo | Guru

>Access, utilizzo VBA
Allora guarda il secondo link che ho postato.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

carloalberto Profilo | Junior Member

>Ciao Lorenzo,
>hai ragione, ma questa riga è stato un errore di taglia e incolla.
>Tuttavia anche eliminado la riga che mi hai suggerito l'errore
>persiste.
>
>Facendo il debug mi viene evidenziata la riga
>Set cognome.Value = Me.cognometxt
>
>Secondo me non ho utilizzato correttamente i parametri.
>Sapresti aiutarmi?
>Grazie
credo di si
prova con qualcosa del genere:

Dim prm As New ADODB.Parameter
Set prm = cmd.CreateParameter
prm.Name = "NomeParam"
prm.Type = adChar
prm.Direction = adParamInput
prm.Size = 60
prm.Value = Trim(Me.cognometxt)
cmd.Parameters.Append prm
ciao

86Marco Profilo | Expert

Ciao, ringrazio anche te per la risposta.
Ho fatto la prova secondo il codice che mi hai postato tu, trasformandolo cosi :

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ma mi viene restituito l'errore:
"Connessione chiusa o non valida in questo contesto. Impossibile utilizzarla per completare l'operazione"

WHY????

carloalberto Profilo | Junior Member

>Ciao, ringrazio anche te per la risposta.
>Ho fatto la prova secondo il codice che mi hai postato tu, trasformandolo
>cosi :
>
>Dim cn As ADODB.Connection
>Dim rs As ADODB.Recordset
>Dim percorso As String
>percorso = Application.CurrentProject.path & "\" & Application.CurrentProject.Name
>
>Set cn = New ADODB.Connection
>cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" &
>"Data Source=" & percorso & ";Persist Security Info=False"
>cn.Open
>
>Dim cmd As ADODB.Command
>Set cmd = New ADODB.Command
>cmd.CommandType = adCmdText
>cmd.CommandText = "INSERT into clienti (Cognome) values (@Cognome)"
>
>Dim prm As New ADODB.Parameter
>Set prm = cmd.CreateParameter
>prm.Name = "Cognome"
>prm.Type = adChar
>prm.Direction = adParamInput
>prm.Size = 60
>prm.Value = Trim(Me.cognometxt)
>cmd.Parameters.Append prm
>
>cmd.Execute
>
>ma mi viene restituito l'errore:
>"Connessione chiusa o non valida in questo contesto. Impossibile
>utilizzarla per completare l'operazione"
>
>WHY????

86Marco Profilo | Expert

xche hai quotato senza rispondere???


Mi viene fuori sempre lo stesso errore

carloalberto Profilo | Junior Member

ops , scusami :-)
la domanda era:
su quale riga ti da l'errore?

86Marco Profilo | Expert

Se faccio il debug la riga che viene evidenziata è l'ultima e cioè:

cmd.execute

Perchè??? :(

86Marco Profilo | Expert

Nessuno sa aiutarmi???

lbenaglia Profilo | Guru

>Nessuno sa aiutarmi???
Ti ho già fornito un esempio che fa uso dell'oggetto ADODB.Command con tutto il codice VB Script (compatibile al 100% con VBA, basta tipizzare le variabili).
Di quale altro aiuto avresti bisogno?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

86Marco Profilo | Expert

ciao Lorenzo.
Intanto ti ringrazio sempre.

Il problema è che nella tua risposta (che è estremamente facile da implementar) non riesco ad inserire le lobrerie giuste per poter utilizzare OLEDB!!!!!!!! Avessi risolo questo sarei a cavallo!!

86Marco Profilo | Expert

lbenaglia Profilo | Guru

>Il problema è che nella tua risposta (che è estremamente facile
>da implementar) non riesco ad inserire le lobrerie giuste per
>poter utilizzare OLEDB!!!!!!!! Avessi risolo questo sarei a cavallo!!

Aggiungi una reference a Microsoft ActiveX Data Objects 2.8 Library tramite il menu Tools > References... dall'IDE di VBA.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

86Marco Profilo | Expert

Ho definito la libreria che mi hai detto.

Tuttavia non appena cerco di settare la connection
Dim con As New oledbconnection

Mi viene subito restituito un errore: "tipo definito dall'utente non definito"

Tra l'altro nel intellisense dell'IDE non riesco a trovare l'oggetto OleDbConnection.
E' come se la libreria non fosse stata inserita nel progetto.
Cosa potrebbe essere??
Grazie veramente per la tua pazienza

lbenaglia Profilo | Guru

>Ho definito la libreria che mi hai detto.
>
>Tuttavia non appena cerco di settare la connection
>Dim con As New oledbconnection
Infatti oledbconnection è una classe di ADO.NET non di ADO "classic" (basato su COM).
Nel secondo link che ti ho passato troverai scritto:

Set cmd = Server.CreateObject("ADODB.Command")

>Grazie veramente per la tua pazienza
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

86Marco Profilo | Expert

Grazie!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5