Gestire output di una query parametrica in VBA

di il
2 risposte

Gestire output di una query parametrica in VBA

Ciao a tutti,

anticipo che sto iniziando in questi giorni ad utilizzare Access; ho provato ad usare una SQL query parametrica; vorrei utlizzare l'output della query all'interno del codice VBA che la richiama. Questo é il codice che ho scritto:

Do Until tKMWorksheet.EOF


Set qCommessaDipendente = DBCOrrente.QueryDefs("CommessaDipendenteID")
temp = tKMWorksheet.Fields("IDCommessaTrasferta")
qCommessaDipendente.Parameters![NumeroCommessa:] = temp
Set recsCommDipID = qCommessaDipendente.OpenRecordset
strCommDipID = recsCommDipID.Fields("CommessaDipendenteID")
...
dove sbaglio? compare un errore che dice che non ci sono record correnti (e mi risulta che ce ne debba essere)

Grazie!

2 Risposte

  • Re: Gestire output di una query parametrica in VBA

    wippis ha scritto:


    
    ...
    temp = tKMWorksheet.Fields("IDCommessaTrasferta")
    qCommessaDipendente.Parameters![NumeroCommessa:] = temp
    ...
    dove sbaglio? compare un errore che dice che non ci sono record correnti (e mi risulta che ce ne debba essere)
    Pubblica la SQL della query CommessaDipendentiID.
    Il codice è parziale. Dove sono le dichiarazioni delle variabili e l'assegnazione agli oggetti (ad esempio DBCorrente). C'è un tKMWorksheet: è un foglio di excel? Usi da qualche altra parte la variabile [temp] (un nome un po' più significativo sarebbe auspicabile)? altrimenti puoi scrivere direttamente
    qCommessaDipendente.Parameters![NumeroCommessa:] = tKMWorksheet.Fields("IDCommessaTrasferta")
    Prova ad assegnare il valore alla proprietà Value indicandola esplicitamente
    qCommessaDipendente.Parameters![NumeroCommessa:].Value = tKMWorksheet.Fields("IDCommessaTrasferta")
    Il tipo dati del parametro è corrisponde al contenuto di IDCommessaTrasferta o è meglio "forzarne" la conversione?
    Per verificare se almeno in teoria funziona crea una query identica a CommessaDipendenteID senza alcun parametro. Prendi il valore di tKMWorksheet.Fields("IDCommessaTrasferta") in corrispondenza del quale si verifica l'errore ed esegui la query.
    PS: ho aggiunto un paio di righe prima di accorgermi che wippis aveva già quotato e risposto.
  • Re: Gestire output di una query parametrica in VBA

    Philcattivocarattere ha scritto:


    wippis ha scritto:


    
    ...
    temp = tKMWorksheet.Fields("IDCommessaTrasferta")
    qCommessaDipendente.Parameters![NumeroCommessa:] = temp
    ...
    dove sbaglio? compare un errore che dice che non ci sono record correnti (e mi risulta che ce ne debba essere)
    Pubblica la SQL della query CommessaDipendentiID.
    Il codice è parziale. Dove sono le dichiarazioni delle variabili e l'assegnazione agli oggetti (ad esempio DBCorrente). C'è un tKMWorksheet: è un foglio di excel? Usi da qualche altra parte la variabile [temp] (un nome un po' più significativo sarebbe auspicabile)? altrimenti puoi scrivere direttamente
    qCommessaDipendente.Parameters![NumeroCommessa:] = tKMWorksheet.Fields("IDCommessaTrasferta")
    Il tipo dati del parametro è corrisponde al contenuto di IDCommessaTrasferta o è meglio "forzarne" la conversione?
    Per verificare se almeno in teoria funziona crea una query identica a CommessaDipendenteID senza alcun parametro. Prendi il valore di tKMWorksheet.Fields("IDCommessaTrasferta") in corrispondenza del quale si verifica l'errore ed esegui la query.
    ciao, ti ringrazio tanto dei consigli che mi hai dato, ne farò tesoro! (specie il temp... ). ad ogni modo pare che abbia risolto, c'era un banale errore proprio nei dati...
Devi accedere o registrarti per scrivere nel forum
2 risposte