Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

creare una funzione di access che abbia più variabili

  1. #1
    lomdom non è in linea Novello
    mi sono da poco iscritto alla comunità.
    e stocercando una soluzione al mio problema.

    ho scritto le seguenti righe in un modulo:

    Public Function IDSocVar()
    IDSocVar = 83
    End Function


    nella query, poi, ho scritto il nome della
    'funzione con le parentesi().
    e fin qui funziona tutto perfettamente e la query mi restituisce tutti i valori delle società che hanno il parametro 83.
    ora avrei bisogno di estrarre contemporaneamente anche le società con il parametro 84 e 85, ma non riesco a trovare la soluzione poichè la funzione mi permette di vedere una sola variabile.

    potete aiutarmi?

    vi anticipo i miei ringraziamenti.

  2. #2
    Goku non è in linea Scolaretto
    ciao,
    se ho capito bene quanto stai cercando di ottenere la funzione non serve.
    basta impostare i criteri nella query....apri la query in QBE a prova....
    ciao.

  3. #3
    lomdom non è in linea Novello
    ho già questa soluzione nelle mie query, solo che a volte ho la necessità di andare a modificare i criteri a causa dei cambiamenti dei codici società e devo aprire una serie di query e volevo per questo semplificare la situazione raggruppando tutte le variabili in una funzione.
    grazie Goku

  4. #4
    Goku non è in linea Scolaretto
    ciao,
    se lo scopo è visualizzare in una form, dati a seconda di un valore specifico, puoi impostare un filtro basandolo su un valore contenuto nel controllo presposto a filtrare e/o controlli presposti ... credo sia una strada maggiormente efficiente e meno ridondate rispetto al copia/incolla di queries con stesso statemet SQl in cui l'unica differenza è il criterio...che dici...? ci pensi su...? ;-)
    un saluto.

  5. #5
    lomdom non è in linea Novello
    grazie per il consiglio Goku,
    ma vedi le query sono diverse l'una dall'altra ed ognuna ha particolari dati da fornire e soprattutto ci sono più forms dalle quali vengono richiamate con a volte il criterio IN("80","81","82") o NotIN("80","81","82"), per questo mi sembra va più logico puntare a una funzione unica dove impostare le varie IDSOC che sono in formato testo e non numerico.
    Se riusco a formulare una funzione con più variabili avrei risolto il problema.
    che ne pensi?
    ciao Goku

  6. #6
    L'avatar di zacca62
    zacca62 non è in linea Scolaretto
    Se non ho capito male le query di cui parli le gestisci da codice giusto?
    potresti utilizzare una funzione che ti restituisce una stringa concatenata con i valori delle variabili che passi e poi dividerla con la funzione VBA Split.
    In pratica (esempio con tre variabili):
    Function MiaFunzione(arg1 As String, arg2 As String, arg3 As String) As String
        Dim strSeparatore As String, sResult As String
    
        strSeparatore = ";"
        sResult = arg1 & strSeparatore & arg2 & strSeparatore & arg3
       
        MiaFunzione= sResult
    
    End Function
    
    Poi con la funzione Split avrai un array di tre elementi (base 0) dal quale chiamare i valori come segue:
    Function UsaArray(strLista As String) As Variant
    
        UsaArray = Split(strLista, ";")
    
    
    End Function
    
    dove strLista è il valore restituito da MiaFunzione.

    I parametri delle query saranno UsaArray(0), UsaArray(1) e UsaArray(2)
    Ultima modifica di zacca62; 30-01-2015 10:53 
    ℹ️ Leggi di più su zacca62 ...

  7. #7
    Goku non è in linea Scolaretto
    ciao Lomdom.
    ma...sono scettico sulla scelta circa la funzione...
    io creerei una form solamente, impostando una serie di controlli non associati, tanti quanti sono i criteri da impostare e in seguito alla selezione nei controlli attiverei il filtro nella form basato ovviamente sul valore contenuto nei controlli.
    risultato ? una query, una form ed un po' di codice da strutturare....that's all... ;-).
    Ciao.

  8. #8
    lomdom non è in linea Novello
    Ciao zacca62
    nella tua frase "L'unica rivoluzione possibile è l'arricchimento della propria conoscenza" cerco l'entusiasmo per continuare a risolvere il mio problema, ma purtroppo le mie conoscenze sono talmente povere dei fondamentali che mi sto demoralizzando. Vorrei abbandonare il mio progetto perché vedo nella soluzione che mi proponi la giusta impostazione mentre non riesco ad adattarla al mio progetto, ad esempio appena cambio arg1 arg2 e arg3 con i miei valori 80 81 82 che sono in formato testo mi continua a dare errore.
    grazie comunque.

  9. #9
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da lomdom Visualizza il messaggio
    Ciao zacca62
    nella tua frase "L'unica rivoluzione possibile è l'arricchimento della propria conoscenza" cerco l'entusiasmo per continuare a risolvere il mio problema, ma purtroppo le mie conoscenze sono talmente povere dei fondamentali che mi sto demoralizzando. Vorrei abbandonare il mio progetto perché vedo nella soluzione che mi proponi la giusta impostazione mentre non riesco ad adattarla al mio progetto, ad esempio appena cambio arg1 arg2 e arg3 con i miei valori 80 81 82 che sono in formato testo mi continua a dare errore.
    grazie comunque.
    MI permetto di intervenire semplicemente per il fatto che non si capisce assolutamente cosa devi fare.
    Il primo POST che hai fatto espone una funzione che concettualmente è INUTILE e che contribuisce ad aumentare l'incomprensibilità del ragionamento.
    Le funzioni si richiamano se devono restituire dei valori dinamici, ma se le richiami per restituire valori FISSI è assurdo.

    Fai un esempio concreto dei dati e della Query, altrimenti tra la confusione ed i suggerimenti più disparati che vengono dati l'entropia aumenta e non si centra il bersaglio.
    ℹ️ Leggi di più su @Alex ...

  10. #10
    L'avatar di zacca62
    zacca62 non è in linea Scolaretto
    Quote Originariamente inviato da lomdom Visualizza il messaggio
    Ciao zacca62
    nella tua frase "L'unica rivoluzione possibile è l'arricchimento della propria conoscenza" cerco l'entusiasmo per continuare a risolvere il mio problema, ma purtroppo le mie conoscenze sono talmente povere dei fondamentali che mi sto demoralizzando. Vorrei abbandonare il mio progetto perché vedo nella soluzione che mi proponi la giusta impostazione mentre non riesco ad adattarla al mio progetto, ad esempio appena cambio arg1 arg2 e arg3 con i miei valori 80 81 82 che sono in formato testo mi continua a dare errore.
    grazie comunque.
    Ti ringrazio peer l'apprezzamento anche se quella frase è lì soprattutto per me, visti i risultati ...
    Ho riletto il messaggio e solo adesso ho capito che non stai usando una form ma vuoi utilizzare la funzione direttamente nell'editor della query ...

    COMUNQUE LA SECONDA FUNZIONE ERA INCOMPLETA o se vogliamo inadatta ...

    Function UsaArray(strLista As String, x As Integer) As Variant
        Dim mArray As Variant
        mArray = Split(strLista, ";")
        UsaArray = mArray(x)
    End Function
    
    poi nel QBE nei criteri del campo Codice azienda indicherai
    UsaArray(Cerca("80";"81";"83");1) Or UsaArray(Cerca("80";"81";"83");2)
    
    Nell'ipotesi ho selezionato tre parametri nella funzione Cerca e ne ho estratti due con UsaArray per usarli come parametri nella query ...

    Poi facci sapere come è andata
    ℹ️ Leggi di più su zacca62 ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Funzione REPLACE in access con variabili
    Da francogilles nel forum Microsoft Access
    Risposte: 21
    Ultimo Post: 11-02-2014, 16:23
  2. Funzione REPLACE in access con variabili
    Da francogilles nel forum Microsoft Word
    Risposte: 0
    Ultimo Post: 05-02-2014, 11:51
  3. Funzione su Access: come creare? Necessaria?
    Da RiccardoA nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 08-09-2011, 11:39
  4. [access] variabili e funzione replace
    Da Tommy_G nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 13-10-2009, 11:08
  5. Passare variabili a una funzione
    Da cippalippa nel forum Visual Basic 6
    Risposte: 6
    Ultimo Post: 23-12-2006, 14:12