Newsgroup: it.comp.appl.access
Titolo: ADO apertura recordset di stringa SQL

salve!
 
ho creato una stringa complessa di SQL
in visualizzazione struttura della query funziona come vedo i dati.
 
non capisco perche'
mentre altre funzionao correttamente in VBA
 
questa mi dice "errore di automazione errore non specificato"
 
strSql = "SELECT..."=
rs.Open strSql, Application.CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
 
cosa posso fare?
 


vorrei aggiungere
che se provo con ADO  NON funziona- "errore di automazione"
mentre se provo con DAO (il famoso VECCHIO DAO) funziona
 
ADO
Public Function QueryCreate_Ado(sQueryName As String, sSql As String)
  ' 
https://support.microsoft.com/it-it/help/625476
 
  Dim cn As ADODB.Connection: Set cn = Application.CurrentProject.Connection
 
  cn.Execute "CREATE procedure myQueryDef as " & sSql
 
  cn.Close
  Set cn = Nothing
 
End Function
 
 
DAO
 
Public Sub QueryCrea_DAO(sQueryName As String, sSql As String)
 
    Dim db As dao.Database
    Dim qdfNuovo As dao.QueryDef
 
    Set db = CurrentDb
 
    With db
        Set qdfNuovo = .CreateQueryDef(sQueryName, _
                                       sSql)
        .QueryDefs.Refresh
        .Close
    End With
 
End Sub


Ciao,
Nel link che riporti è specificato che il comando Create Procedure funziona solo con "Provider=Microsoft.Jet.OLEDB.4.0;".
che versione di Access stai usando?
Mat.


grazie del messaggio
 
per dovere di cronaca ho preso il codice dal sito. Utilizzo access 2010, ma non penso dipenda da quello perche' la connessione la prendo da 
 
  Dim cn As ADODB.Connection: Set cn = Application.CurrentProject.Connection 
 
 
ho sviluppato alcune procedure con DAO
 
crea query, cancella query, cancella tabella
 
le ho tradotte in ADO, ma la queryCreate trovo delle difficoltà
potete darmi delle dritte?
GRAZIE

 GRAZIE
Ok, con access 2010 dovrebbe funzionare.
Bisogna indagare sul codice sql, hai provato a usare una comando sql semplice come:
CREATE PROCEDURE qUno As SELECT 1 AS Uno;
 
Ciao
Mat


GRAZIE
 
mi permetto di riportare le 2 funzioni:
quella ADO non funziona in questo caso - errore di automazione - sara' perche' la stringa e' troppo lunga?
 
mentre quella DAO funziona, ma vorrei capire perche' quella ADO ha dei problemi
ho anche provato 
con 
 
Public Function pfmQueryCreateView_Ado(sQueryName As String, sSql As String)
    ' Purpose:   Create a new query using ADO.
    ' web: 
http://allenbrowne.com/func-adox.html#DeleteProcedureAdox
 
    ' modified by PFM
    Dim cn As ADODB.Connection: Set cn = Application.CurrentProject.Connection
 
    On Error GoTo ErrorHandler
    Dim strSql As String
 
     strSql = "CREATE VIEW " & sQueryName & " AS " + _
              sSql
 
    cn.Execute strSql
    pfmQueryCreateView_Ado = True
 
ExitHere:
    Debug.Print "MyTableView created"
    Set cn = Nothing
    Exit Function
ErrorHandler:
    If Err.Number = -
2147217900
 Then
       Debug.Print "The Query/view was already deleted."
       pfmQueryCreateView_Ado = False
    Exit Function
    Else
       MsgBox Err.Number & ":" & Err.Description
       pfmQueryCreateView_Ado = False
 
       Resume ExitHere
    End If
 
End Function
 
 
ADO
Public Function QueryCreate_Ado(sQueryName As String, sSql As String)
  ' 
https://support.microsoft.com/it-it/help/625476
 
  Dim cn As ADODB.Connection: Set cn = Application.CurrentProject.Connection
 


Ciao, 
io ho la netta impressione che il problema non sia il codice vba che hai postato (ne il primo ne quello di browne) ma, ripeto, nel codice sql stesso, che, scritto per ado o per dao, in alcuni casi ha una sintassi leggermente diversa. 
Per questo ti chiedevo se hai provato con un sql semplice.
Per capire se c'è un problema con il codice sql dovresti postare anche quello (sql puro, non vba con concatenazioni o altro)
Ciao
Mat.