Eseguire una store procedure da access

di nico70 il
11 risposte

Eseguire una store procedure da access

chiedo un suggerimento su come far eseguire una store procedure sql da una maschera di access

premetto che la store ha un parametro, 

come query pass_tr…  - exec X_VERIFICHE_DIALISI_2024 @cod_cliente='2241' - funziona tranquillamente 

se da una maschera tramite pulsante che legge in una casella di testo come in questo caso sotto evidenziato nn riesco a ….

exec X_VERIFICHE_DIALISI_2024 @cod_cliente=forms!M_0001!testo3

premetto che nn sono molto ferrato in programmazione tt da autodidatta

ringrazio anticipatamente

11 Risposte

  • Testo3 cos' è? Un oggetto o il valore che contiene? Che tipo di valore contiene?

    Prova a passarlo come variabile e controlla che valore assume.

    Prima.assegni la variabile poi la usi per il parametro.

  • exec X_VERIFICHE_DIALISI_2024 @cod_cliente=forms!M_0001!testo3

    testo3 e una casella di testo su maschera che si chiama M_0001

    Prova a passarlo come variabile e controlla che valore assume.

    Prima.assegni la variabile poi la usi per il parametro. (suggerimento vba)

  • È ovvio che non funzioni… le Q_pt vengono eseguite lato server non vengono risolte quindi il server secondo te come risolve il riferimento al controllo…?

    Devi far risolvere la stringa SQL in vba e poi inviarla al server

    Sim ssql As String
    ssql="exec X_VERIFICHE_DIALISI_2024 @cod_cliente=" & forms!M_0001!testo3
    Dbengine(0)(0).Querydefs("nomequery").SQL=ssql
    'ora la esegui come vuoi...
  • :( non funziona nn sò se sbaglio da qualche parte

  • Ma la query PT ha la proprietà connect valorizzata…?

    La SP ha parametro …?

    Se hai definito il parametro con @Cod_cliente basta passare il numero… non riprendere il nome parametro… basta questo:

    ssql="exec X_VERIFICHE_DIALISI_2024 " & forms!M_0001!testo3
  • Grazie mille FUNZIONA

  • Grazie del suggerimento di prima, dove sbaglio quando ho due parametri

    inserendo a mano nella query pass tr__       exec AAAABBB 202201,202202 funziona

    seguendo il ragionameto dell ultimo consiglio

    con un solo parametro funziona
    Sim ssql As String
    ssql="exec X_VERIFICHE_DIALISI_2024 " & forms!M_0001!testo3
    Dbengine(0)(0).Querydefs("nomequery").SQL=ssql
    docmd.open query"nomequery"

     con due parametri cosi non funziona, fatte diverse prove ….grrr :-(  

    Private Sub Comando5_Click()
    Dim ssql As String
    ssql = "exec AAAABBB " & "" & Forms!Maschera1!Testo10 & "," & Forms!Maschera1!Testo12
    DBEngine(0)(0).QueryDefs("DA_A").SQL = ssql  
    DoCmd.OpenQuery "DA_A"
    End Sub
     dove erro

  • Il Secondo parametro che tipo di dato è…? se è testo, data serve la sintassi adeguata… se è  booleano devi fare attenzione che il Server SQL non ha il -1, quindi devi fare ABS(Valore), se sono numeri con Decimali devi convertire il simbolo del decimale… ecc…!

  • Il tipo di dato e testo

  • Caro ragazzo se ci dai le informazioni con il contagocce la prossima volta chiudiamo prima di iniziare…

    Dovresti almeno studiare le basi del linguaggio altrimenti è uno sforzo che non rende.

    Per i campi di tipo testo la sintassi richiede gli apici prima e dopo o la concatenazione del chr(34).

Devi accedere o registrarti per scrivere nel forum
11 risposte