Newsgroup: it.comp.appl.access
Titolo: DAO ed SQLExpress non va.. che fo?

Ragazzi da poco mi sono avvicinato al mondo ADP/SqlExpress e quindi sono
ancora un po' in alto mare..
avevo il mio bel db in access.. con tutti i suoi bei codicilli fatti in
VBA ... che funzionavano bene..
ora l'esigenza di fare l'ADP e passare i dati del backend su SQLExpress
(prima erano su un altro db access)
bene.. faccio l'upsize wizard e funzia tutto... mi crea la connessione e
funzia... ma.. appena apro il db il primo controllo che fa e' prendere un
dato da una tabella e fare dei calcoli.. con un codice del genere:
        Dim rst As DAO.Recordset
        Dim xosCall() As String
        Set rst = CurrentDb.OpenRecordset("SELECT IdOrder,XOSCode FROM
tblOrder WHERE cboOrderStatus<>-1 AND cboOrderStatus<>2000 AND
XOSCode<>''")
succede che su Set rst = CurrendDb ecc.. mi si pianta con un errore del
tipo: Object Variable or With Block variable not set (in effetti poche
righe dopo c'e' un With rst) ...
ora mi domando, visto che vedo rst=nothing nel watch... non e' che DAO non
gestisce bene o niente affatto le connessioni a sqlexpress? che faccio?
(devo usare ADO..? differenze?)
grazie a tutti
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 grazie a tutti
sě devi usare ADO
Oppure DAO ma con ODBC
-- 
-- 
Massimiliano Amendola
www.accessgroup.it
Il sito italiano di svilupatori Access
www.donkarl.com/it/cisa
 

 Oppure DAO ma con ODBC
ma se devo usare ADO, questo significa che devo comunque
creare la stringa di connessione oppure posso sfruttare la connessione
corrente? non vorrei aprire tremila connessioni e far scoppiare il
server...


 server...
Property Connection As Connection
    sola lettura
    Membro di Access.CurrentProject
È possibile utilizzare la proprietà Connection per restituire un
riferimento all'oggetto Connection di ActiveX Data Objects (ADO)
corrente e alle relative proprietà. Oggetto Connection in sola
lettura.
@Alex

 [CUT]



mi sa che sto a fa un po' di casini:
        Dim rs As New ADODB.Recordset
        Dim rsc As New ADODB.Command
        Set cnn = Access.CurrentProject.Connection
 
        rs.ActiveConnection = cnn
        rsc.CommandText = "SELECT IdOrder,XOSCode FROM tblOrder WHERE
cboOrderStatus<>-1 AND cboOrderStatus<>2000 AND XOSCode<>''"
        Set rs = rsc.Execute
all'esecuzione dell'ultima riga, ricevo l'errore:
The connection cannot be used to perform this operation. Is is either
closed or invalid in this context. run time error 3709
che d'e'?
che cappellata ho fatto?
grassssie


pubinn ha scritto:

Questa proprio non ti piace...?
dim rs as ADODB.Recordset
set rs = New ADODB.Recordset
dim strsql as string
strsql = select * from Pippo where codice='01'"
rs.activeconnection=currentproject.connection
rs.Open strsql,,adOpenKeyset,adLockOptimistic 
Saluti
@Alex

Alessandro Baraldi ha scritto:

Se proprio vuoi usare Command dovrebbe essere una cosa simile....
Dim cmd1 As Command
Dim rs1 As ADODB.Recordset
Set cmd1 = New ADODB.Command
    With cmd1
         .ActiveConnection = CurrentProject.Connection
         .CommandText = "select * from Pippo where codice='01';"
         .CommandType = adCmdText
         .Execute
    End With 
Set rs1 = New ADODB.Recordset 
rs1.Open cmd1 
@Alex

 rs.Open strsql,,adOpenKeyset,adLockOptimistic 
grande... 
e pensare che rs.Open l'avevo anche trovato nella guida, solo che mi
metteva il nome della tabella al posto della stringa SQL quindi non
pensavo gli si potesse passare una query sql.. ;)
altra domanda.. 
nel mio db ho anche una serie (abbastanza corposa) di DoCmd.RunSQL
"UPDATE..."
funzioneranno o devo usare altri accrocchi?
grazie tantissimo!


 
Usa il metodo EXECUTE sull'oggetto Connection
@Alex

 pubinn ha scritto:


benissimo..
ma funzionera' con UPDATE,INSERT,DELETE vari??
non si era detto che l'oggetto Connection e' read-only?
grazie ancora


 grazie ancora
Beh cosa deve fare ...?
Quello fà eseguire un comando SQL al Server che c'entra readOnly in
questo caso...?
PROVALO e poi verifica.
@Alex