Newsgroup: it.comp.lang.visual-basic
Titolo: Estrapolare dati da una tabella di Access con VBA

Ciao a tutti,
mi rendo conto che la domanda per molti potrebbe essere banale ma...
Come si fa ad estrapolare i dati da una tabella di Access?
Mi trovo ad aver inserito un tasto in una maschera di ACCESS con associato
una macro di VBA, la quale tra le altre cose mi deve emettere un messaggio
del tipo "Il valore massimo del campo NUMERO della tabella TABELLAUNO č:
XXX" utilizzando un MsgBox.
Questo un esempio, quello che serve a me č capire come devo fare per
richiamare una specifica tabella e un specifico campo; mi sembra occorra
utilizzare delle parentesi quadre ma non ne sono sicuro...
Ringrazio tutti in anticipo
Ciao da Emiliano

 utilizzare delle parentesi quadre ma non ne sono sicuro...
Per questo ti basta una qualsiasi connessione DAO o ADO al database Access,
aprire la tabella e rilevarne i valori dei campi per i records desiderati
oppure, senza codice, usare uno strumento qualsiasi per la
visualizzazione/gestione dei contenuti, per esempio il VisData incluso (col
codice) in VB.
Per quanto riguarda le quadre, queste vanno obbligatoriamente adottate solo
quando un determinato nome (di tabella e/o di campo) contiene degli spazi
e/o corrispondono a parole chiave.
Per esempio: [Nome Tabella].[Nome Campo]

 ha scritto nel messaggio
news:avst51$jbhlq$1...@ID-174464.news.dfncis.de...


 Spero di essere stato chiaro.
Ora sei stato chiaro. Passo, non ho mai usato l'applicativo Access per farci
procedure. Mi spiace.

 i dati memorizzati in una tabella sempre di ACCESS.
Il modo di interagire con i dati della tabella è sempre quello di usare un
recordset, del quale puoi vedere e/o modificare i dati contenuti nel record
corrente, il quale può essere impostato tramite i soliti find move eccetera
(pare esista anche un seek, ma non l'ho mai usato).
Insomma, tra lavorare all'interno e all'esterno di access non ci sono differenze
sostanziali.
Salutoni
Sergio


Ciao Sergio,
ti ringrazio per la risposta, ma qual è la sintassi esatta per ricavare i
dati da uno specifico campo di uno specifica tabella.
Per farti capire il mio problema vorrei che sapere come risolvere passo per
passo questo esempio pratico che penso sia semplice ma non lo so fare.
Ho una tabella che si chiama TABELLAUNO contenente diversi campi e vorrei
che un MsgBox scorresse tutti i dati inseriti nel suo campo di nome CAMPOUNO
magari utilizzando un while
While ................
    a = ................
    MsgBox "il valore del campo è:" & a
Wend
dove "a"  deve essere il valore del record successivo; dove ho messo i
puntini è perchè non conosco la sintassi.
Spero di essere stato abbastanza chiaro...
Ringrazio in anticipo.
Ciao da Emiliano

dati da uno specifico campo di uno specifica tabella.
Ma tu, hai mai aperto, non dico letto, ma almeno aperto, la guida in
linea?
-- 
un hal che non ne puo' piu' di queste domande

 un hal che non ne puo' piu' di queste domande
Se tutti ci arrivassero da soli a cosa serve il NG.
Probabilmente sarò io che sono tordo e non ci arrivo ma la guida in linea
l'ho letta e per diverso tempo ma non ho ricavato niente perchè penso che
gli esempi vadano oltre le mie necessità...
Quello che sono riuscito a fare è:
    Dim db As DAO.Database
    Dim doc As DAO.Recordset
    Dim Numero As String
    Set db = CurrentDb
    Set doc = db.OpenRecordset("Nominativo")
    db.Recordsets.FindFirst "[Nominativo] = 50/02"
Questo codice l'ho associato a un bottone inserito in una maschera di Access
collegata alla tabella TABELLAUNO.
Però mi viene emesso il seguente errore: "Impossibile trovare il metodo o il
membro dei dati"
Con la guida in linea più di cosi non riesco a fare ed è molto probabile che
ho sbagliato tutto!
Ora se invece di fare polemica ci fosse spazio anche per un dilettante come
me in questo NG ve ne sarei veramente grato
Ringrazio in anticipo
Emiliano

     doc.FindFirst "[Nominativo] = '50/02'"

[Emiliano - EmiCAD®] ha scritto:
(snip)
Fuori dai denti, emiliano: ma ci fai o ci sei?
Sarò malfidente e cattivo, ma l'estratto di codice che hai postato è talemente
infarcito di errori logici, e d'altra parte così preciso nella sintassi, da far
pensare ad una cosa scritta ad ok per coglionare il NG.
Sbaglierò, spero di sbagliarmi naturalmente, ma mi pare tanto una trollata...
Comunque, nel caso in cui non fosse una trollata, lasciati dire che è il caso di
cominciare a studiare seriamente, magari su un libro. Nel cd di office 97
professional c'era anche un simpatico libro elettronico (in inglese) che
spiegava come scrivere il codice in access.
Ci vediamo fra qualche mese.
Salutoni
Sergio

 ad ok
intendevasi "ad hoc", e questo è da matita rossa...


Ciao probabilmente se tu e quelli come te non perdessero il tempo per fare
polemica ma aiutassero un povero dilettante (probabilmente non sono nemmeno
quello) che forse non ha tempo per fare un corso completo di ACCESS, per
risolvere solamente un piccolo problema.
Questo č il mio caso, che mastico un po' (pochissimo di VisualBasic) ma
quasi niente di ACCESS ma devo utilizzare e personalizzare un piccolo
database per mio utilizzo personale.
A parer mio avresti perso meno tempo ad aiutarmi piuttosto che scrivere
quello che hai scritto.
Prova ad andare nel NG dedicato al CAD "it.comp.software.cad" di cui io mi
ritengo un esperto e vedrai che personalmente aiuto tutti coloro che posso
aiutare anche se molte domande spesso sono banali.
Sono banali per me che sono un esperto ma non per molti altri. I NG servono
anche a questo altrimenti esistevano solo le Chat per quelli come te
Grazie e scusami per lo sfogo ma sono tre giorni che cerco di risolvere
questo problema che probabilmente tu sai risolvere i due minuti!
Ciao
Emiliano

    doc.FindFirst "[Nominativo] = '50/02'"
fai conto che se invece devi cercare delle date il discorso si complica
Queste instruzioni fanno in modo di portare il "record corrente" a quello che
contiene, nel campo "nominativo", la stringa "50/02", a quel punto, se vuoi
visualizzarlo in una msgbox ti basta fare
msgbox doc![nominativo] (le parentesi quadre sono opzionali nel caso in cui il
nome del campo non contenga spazi)
Se vuoi vedere tutti i record del recordset, dopo averlo aperto ti basta fare:
Do until doc.eof
    msgbox doc![nominativo]
    doc.movenext
loop
Ok, adesso ti ho dedicato una certa quantità di tempo, a questo punto vediamo
che cosa sei in grado di fare tu.
Salutoni
Sergio

 quello)...
Ciao.