|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
20-11-2013, 14.38.53 | #1 |
Newbie
Registrato: 20-11-2013
Messaggi: 5
|
VBA access
GRAZIE a tutti quanti vorranno aiutarmi. Spero di non esagerare ponendo due quesiti... 1) DLOOKUP In una FUNCTION devo passare un parametro alla funzione dlookup, ma non funziona! Esempio: Function PIPPO (par1 as string) as string dim PIPPO1 as string PIPPO1 = DlookUp("[campo da cui leggo]","[tabella da cui leggo]", "[campo di riferimento] = " & par1) Comunque la scriva non funziona poichè non riconosce par1 Come si può risolvere? 2) Debbo usare delle SELECT all'interno di Function o Sub. Non posso usare Dlookup in quanto la select è un poco complessa, ne richiamare una Query. Riesco a scrivere tranquillamente la select, ma non so come utilizzarla? Ad esempio devo assegnare il valore di una COUNT ad una variabile .... Dim PIPPO as Variant PIPPO = (SELECT Max(RTL_INCIDENZA.NUMERO) AS MaxDiNUMERO FROM RTL_INCIDENZA) [è solo un esempio in questo caso, sono conscio che una DMax potrebbe bastare!] NON FUNZIONA Credo occorre dichiarare il db ecc. ma tutte le ricerche che ho fatto sui forum danno risposte parziali o non riesco a capirne la logica! Qualcuno mi può esser di aiuto? Ri-GRAZIE G. |
20-11-2013, 17.14.21 | #2 |
Forum supporter
Global Moderator
Registrato: 23-08-2007
Messaggi: 2.704
|
Rif: VBA access
A VBA non interessano le lettere maiuscole e minuscole? (chiedo perché non so)
Prova: Codice:
Function PIPPO (ByRef par1 As String) As String dim PIPPO1 As String PIPPO1 = DlookUp("[campo da cui leggo]","[tabella da cui leggo]", "[campo di riferimento] = " par1) return PIPPO1 [questo si fa in c/c++, non so in vba] |
20-11-2013, 18.01.00 | #3 |
Newbie
Registrato: 20-11-2013
Messaggi: 5
|
Rif: VBA access
Grazie per la risposta...
Ma VBA Access non fa differenza fra maiuscole e minuscole e inoltre corregge da solo i nomi delle funzioni (maiscolo/minuscolo) Il problema non è lì Ho provato "infinite" sintassi, ma nulla, non accetta il parametro il ingresso sulla funzione. Ciao |
20-11-2013, 18.12.45 | #4 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: VBA access
...non ho sottomano Access, ma prova ad impostare come variant la variabile che contiene il valore di ritorno di DLookup.
Prova prima a vedere se msgbox DLookup(...) ti restituisce il valore ricercato (così verifichi di aver scritto correttamente la stringa di query), poi assegna una variabile di ritorno alla funzione. Per fare accesso al database si usa l'oggetto globale db. db è Access, perlomeno l'oggetto Access che accede alla struttura delle tabelle e delle queries. Se la query è d'azione, utilizza db.Execute "..." Se la query è di selezione, devi dichiarare una variabile di tipo recordset. Qui bisogna che decidi se utilizzare DAO oppure ADO (C'è differenza sintattica, anche se il concetto è identico). Una volta dichiarata la variabile di tipo recordset (oggetto recordset), devi aprire il recordset (OpenRecordset) passando la stringa SQL al motore. Il recordset sarà popolato con i valori corripondenti. La proprietà recordcount ti indicherà se è pieno o vuoto. Poi dovrai sfogliarlo (rs.MoveNext) e fermarti quando avrai trovato il valore che cerchi. A questo punto, chiudi il recordset.
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
20-11-2013, 23.06.00 | #5 |
Newbie
Registrato: 20-11-2013
Messaggi: 5
|
Rif: VBA access
DlookUp anche con MSGBOX niente di buono!
Il problema è che non riconosce/accetta la variabile par1 SELECT... purtroppo sono molto inesperto... riesci a farmi un esempio pratico partendo dalla select che ho evidenziato (SELECT Max(RTL_INCIDENZA.NUMERO) AS MaxDiNUMERO FROM RTL_INCIDENZA) e caricandone il risultato in una variabile? Quello che non riesco conosco e la sintassi per collegarsi al db aprirlo ecc. GRAZIE |
21-11-2013, 12.54.29 | #6 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: VBA access
par1 è di tipo stringa, passata come parametro reference.
Il primo problema che devi risolvere è: Quale sarebbe la stringa SQL che passeresti a DLookUp affinchè ti restituisse un valore coerente con la query data in pasto al motore ? Dovrebbe essere: "SELECT [campo da cui leggo] FROM [tabella da cui leggo] WHERE [campo di riferimento] = " ed il valore di par1, giusto ? par1 è un numero o una stringa ? Le stringhe vanno tra doppi apici, apici singoli, oppure no quando date in pasto al motore ? Soluzione sintattica da verificare: Crei la query con l'autocomposizione, imposti manualmente il valore di par1 e la esegui. Poi, verifichi la stringa SQL corrispondente creata. Posso assicurarti che funziona, se ben scritta.
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
Tags |
access, dlookup, select, vba |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Informazioni su Access | Caimar | Office suite | 3 | 20-02-2008 07.49.07 |
Driver access | pasmar17 | Office suite | 1 | 02-09-2006 01.02.47 |
Folder Access ( da cancellare) | crazy.cat | Segnalazioni Web | 0 | 31-07-2005 11.42.07 |
Aggiornamento firewall Blackice | Puppauz | Segnalazioni Web | 30 | 12-11-2004 15.54.02 |
ADSL : Shared Access o BitStream | Macao | Segnalazioni Web | 0 | 06-11-2004 03.07.09 |