Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-04-2007, 19:18   #1
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
[VISUAL BASIC + ACCES] dubbio

Ciao,
sto lavorando ad un programma Acces. Vorrei creare una funzione da richiamare quando da una maschera in Access clicco il bottone.

Vorrei che la funzione andasse a leggere tramite una query da una tabella e quindi restituire il valore letto come valore restituito dalla funzione.

E' possibile creare una tale funzione?

Mi servirebbe quindi poter chiamare questa funzione nella subroutine legata all'evento click del bottone..

Avete qualche suggerimento?

Grazie!! :-)
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 10:15   #2
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
certo che si può...ma devi fare delle ipotesi molto forti sulla query in questione.
mi spiego meglio: siccome quello che ti interessa è ritornare un solo dato, la query DEVE ritornare un solo risultato, oppure ipotizzare che il campo in questione sia uguale per tutti i record ritornati dalla query. Quindi per ricavare il valore che stai cercando, devi implementare la query in modo che ritorni il solo record cercato, e a quel punto puoi usare la funzione Dlookup per leggere tale valore.

Ad esempio: se tu avessi una tabella clienti, con un campo chiave "CodiceCliente", allora creando una query che cerca un dato cliente partendo dal codice, riusciresti a ricavare un solo record (quello cercato) in quanto il campo "CodiceCliente" è univoco.

La funzione Dlookup ritorna il valore di un record a caso, di un campo specifico, all'interno di un dominio specificato. Un esempio può chiarire:

Codice:
mioValore = DLookup("Campo", "QueryOTabella")
Dlookup ritorna, in modo del tutto casuale, uno dei valori del campo "Campo" all'interno di "QueryOTabella". Capirai che se i valori in "QueryOTabella" sono più di uno, la funzione potrebbe restituire valori inaspettati...per questo è importante sapere a priori che "QueryOTabella" contenga un solo record, oppure che il campo "Campo" contenga lo stesso valore per tutti i record di "QueryOTabella", in modo che si sia sicuri del valore che tale origine dati restituisce.

Riassumendo, per fare questo, basta creare un nuovo modulo (Modulo1) al cui interno inserire una funzione definita "Public"

Codice:
Public Function dammiValore() as String
 Dim ritVal as String
 ritVal = DLookup("Campo", "QueryOTabella")
 dammiValore = ritVal
end function
(ho supposto che il valore di ritorno della funzione sia di tipo "String", ma naturalmente tu poi decidere di fargli ritornare quello che vuoi)

che non fa altro che leggere da "QueryOTabella" e ritornare il valore di "Campo". Poi crei un pulsante e, sull'evento "Su click" di quest'ultimo richiami la funzione "dammiValore()", facendo attenzione che, dato che devi usare il valore di ritorno di tale funzione, la devi richiamare con le parentesi rotonde e utilizzare il valore come meglio credi.

se ci son problemi chiedi pure!
__________________

Ultima modifica di akyra : 24-04-2007 alle 10:20.
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 11:27   #3
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
Ok ottimo ;-)! Grazie per la risposta completa e chiara, ora provo la soluzione..

posso chiederti un'ultima cosa??

Sempre al momento del click del bottone vorrei poter leggere in una funzione
TUTTI i valori contenuti nei CAMPI della MASCHERA sulla quale faccio click..
in modo da poterli inserire nel database SQL o aggiornare il database..

E' possibile?

E' possibile anche fare una cosa del tipo:

if (riga con codice cliente già presente)
then AGGIORNA riga con valori della maschera
else INSERISCI NUOVA rigra

??
Grazie mille e perdonate la banalità delle domande ma è la prima volta che programma in Visual Basic, thanks ;-)
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 16:13   #4
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
certo che puoi, basta implementare un ciclo for (o while) e scorrere le righe e i campi che ti servono e poi eseguire l'if che ti serve....

ad esempio una cosa di questo tipo dovrebbe fare al caso tuo:
Codice:
for i=1 to me.recordset.recordcount
  'inserisci qui il codice che ti serve

   if i < me.recordset.recordcount then
         me.recordset.movenext
   end if
next i
con queste semplici righe di codice scorri tutte le righe presenti nella query o tabella su cui è basata la maschera corrente...ora non ricordo se il sistema inizi a contare i record dallo zero o dall'uno, comunque questo non è un problema, basta provare...
__________________
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 16:43   #5
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
Ma se io invece volessi modificare il valore nella maschera e quindi aggiornare-leggere il valore modificato?
shang84 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 22:09   #6
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
dovresti spiegarti meglio perchè così non ho capito molto bene...
__________________
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2007, 23:14   #7
shang84
Senior Member
 
Iscritto dal: Apr 2005
Città: <-|-|-*|*-|-|->
Messaggi: 347
... no problem ;-) Grazie lo stesso, mi è servito TANTISSIMO quello che mi hai detto prima, davvero grazie. L'ultimo post è poco chiaro, me ne rendo conto.. ho risolto il problema..

Grazie ancora ;-)!!
shang84 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
USB4 e capacità fino a 8 TB, ecco...
Tesla alza ancora il prezzo del Cybertru...
Arriva i Cloudera Anywhere Cloud, la nuo...
L'iPhone del 20° anniversario si mostra ...
Due monitor al posto di uno: il nuovo AG...
Siri AI non sarà per tutti, inizialmente...
NVIDIA GeForce NOW estende il supporto a...
Tornano 2 super promo su Amazon, bestsel...
Instagram semplifica il montaggio dei Re...
Geely oltre 800 volt: punta a 1.000 volt...
Un transistor che funziona a 600 °C,...
Il drone russo ha scelto da solo cosa co...
Frodi online: 58 arresti in 22 paesi, e ...
ASUS ROG Xbox Ally X20, via ai preordini...
Friggitrici ad aria scontate su Amazon e...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v