CISA FotoGallery

Statistiche

Tot. visite contenuti : 885932
Home Articoli tecnici Forms Esempio di stringhe e recordset (MsgBox)

Esempio di stringhe e recordset (MsgBox)

Una maschera di ricerca in genere può essere di due tipi: una maschera con un controllo txtbox in cui l'utente inserisce la stringa di ricerca, ed un eventuale pulsante di comando che apre una query filtrata tramite il valore della textbox per la ricerca delle informazioni. Un modo più veloce è quello di sostituire la txtbox con una combobox che riporta l'elenco dei valori di ricerca e la cui colonna associata diventa un parametro per la query risultante. Sia nel primo che nel secondo caso il risultato sarà sempre una query che apriremo a video oppure una maschera in visualizzazione foglio dati la cui origine è la ns. query filtrata con il valore della txtbox o meglio della combobox. Nel caso in cui volessimo visualizzare la query bisogna stare attenti a quello che l'utente può fare: cambiare la struttura della query oppure cambiare i dati. Meglio pertanto una maschera in visualizzazione foglio dati, ma anche lì dobbiamo fare in modo che la maschera sia di solo lettura, impostando a No le proprietà "Consenti modifiche", "Consenti eliminazioni" e "Consenti aggiunte".

Vediamo però cosa possiamo fare di diverso utilizzando VBA, un recordset, e la funzione MsgBox.

La funzione MsgBox visualizza un messaggio in una finestra di dialogo la cui sintassi è:

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

L'argomento "prompt" e una espressione stringa lunga circa 1024 caratteri che possiamo suddividere in più righe mediante una sequenza ritorno a capo-avanzamento riga Chr(13) & Chr(10) oppure con la costante vbCrLf della libreria di VBA che è proprio la combinazione della sequenza di prima.

Se noi pertanto creiamo un recordset e lo scorriamo con un ciclo Do...Loop, esso in maniera sequenziale crea una riga per ogni record che possiamo inserire in un MsgBox. L'inconveniente più grosso in una finestra messaggio è che non si ha la possibilità di alcuna formattazione. Nel demo allegato è stata utilizzata la costante "vbMsgBoxRight" che allinea il testo a destra. Conosciuta la dimensione dei campi che vogliamo portare a video è possibile con l'uso delle funzioni Len, Right e Left forzarne la spaziatura per raggiungere il migliore risultato grafico possibile.

 

Attachments:
Download this file (183.zip)Allegato142 Kb