Contesto: lavoro nel frontend degli utenti di Access 2010 con un backend Microsoft SQL Server 2008. Le tabelle in accesso sono tutte collegate al database del server SQL. Ho una stored procedure che inserisce nuovi valori (forniti dai parametri) in una tabella. Ho ricevuto numerosi esempi ma non capisco abbastanza per sapere se sono davvero vicino a ottenerlo o che sono completamente fuori. Ho fatto una domanda simile in precedenza e ho avuto una buona risposta, ma ho problemi con la stringa di connessione. Ecco la domanda/anwser Calling Stored Procedure while passing parameters from Access Module in VBAChiamata alla stored procedure VBA
Sono inconsapevole e non so come trovare le informazioni richieste per creare una stringa di connessione (es: non conosco il provider/nome server/indirizzo server). Ho trovato una domanda qui che diceva "Se hai già una tabella collegata ad Access che punta al database di SQL Server, puoi semplicemente usare la sua stringa .Connect con un oggetto DAO.QueryDef per eseguire la stored procedure" - Connection string for Access to call SQL Server stored procedure Ho provato ad implementare questo codice, ma non ero sicuro su come passare i parametri, quindi ho provato a utilizzare un esempio precedente. Ma ho ricevuto l'errore "call failed" sulla riga "Set rst = qdf.OpenRecordset (dbOpenSnapshot)" per non parlare dei miei parametri che passano il codice è probabilmente lontano.
Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = CurrentDb.TableDefs("tblInstrumentInterfaceLog").Connect
qdf.sql = "EXEC dbo.upInsertToInstrumentInterfaceLog"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset(dbOpenSnapshot)
qdf.Parameters.Append qdf.CreateParameter("@BatchID", adVarChar, adParamInput, 60, BatchID)
qdf.Parameters.Append qdf.CreateParameter("@InstrumentName", adVarChar, adParamInput, 60, InstrumentName)
qdf.Parameters.Append qdf.CreateParameter("@FileName", adVarChar, adParamInput, 60, FileName)
qdf.Parameters.Append qdf.CreateParameter("@QueueId", adVarChar, adParamInput, 60, QuenueId)
rst.Close
Set rst = Nothing
Set qdf = Nothing
Qualcuno potrebbe dirmi che cosa potrebbe essere sbagliato con il mio codice e perché sto ottenendo questo errore? Grazie!
è un database di Access standard o un progetto di dati di accesso? Ad esempio, le tabelle sono collegate tramite ODBC (database standard) o il progetto di dati è stato collegato direttamente a un database SQL Server? –
Non sono sicuro di non aver creato il database, sto solo scrivendo le procedure per farlo. C'è un modo per dire? – VictoriaJay
Non sono sicuro per Access 2010, ma le cose da guardare ... sono le tabelle collegate alle tabelle o sembrano solo tabelle native? Sotto l'opzione del menu File hai un'opzione di connessione in cui è impostata la connessione al database? –