Box informazione dati da Visual basic Access

lunedì 17 maggio 2010 - 19.04

luigice Profilo | Newbie

Salve a tutti, avrei un piccolo problema con il codice Access. In pratica . durante l' elaborazione di una
routine evento vorrei visulaizzare nella form corrente il valore che si aggiorna di una variabile .
Grazie

dinoxet Profilo | Senior Member

dacci qualche dattaglio in più

DINOXET
__________________________________________
impossible is only a word

luigice Profilo | Newbie

Grazie per la risposta sollecita...
In pratica ho creato una maschera in access2003 che lancia in apertura una routine evento (in Visual Basic) e serve ad modificare il contenuto del campo di una tabella (crea una serie di numeri ).Durante tale elaborazione, metto il nr.dei record creati in una variabile numerica .Per verificare la variazione di questa variabile(chiamiamola X) posso solo fare degli stop alla routine e vedere il contenuto della variabile on line.
Vorrei che il valore di questa variabile X venisse visualizzato nella maschera in corso mentre la routine effettua il calcolo.
IL dettaglio della routine e` :

DoCmd.OpenForm "Maschera App Meno", acNormal, acAdd, , , acHidden
Forms![Maschera App Meno].RecordsetClone.MoveLast
X = Forms![Maschera App Meno].RecordsetClone.RecordCount

ossia metto in X il nr.dei record creati della tabella e vorrei vedere il valore di X sulla maschera aperta in quel
momento.Insomma una specie di Box informativo tipo MsgBox.
Non so` se vi e` chiaro.
Grazie

dinoxet Profilo | Senior Member

intanto nella maschera che vai ad aprire puoi aggiungere un campo testo non associato.
che potresti valorizzare all'interno della tua routine mettendo il campo (per esempio ) testo1=X


per esempio


oppure visto che devi viusualizzare il count di una tabelle potresti fare una query che fa appunto il count di detta tabella e associare il valore a questo campo.


che ne pensi?


DINOXET
__________________________________________
impossible is only a word

luigice Profilo | Newbie

Cioa, visto che sei in linea ti rispondo subito.La query e` stata prima cosa che ho tentato e mi funziona pure,ma purtroppo esce la maschera della query cancellando l'altra maschera in quel momento attiva e poi scompare con la continuazione della routine, poi riappare di nuovo al prossimo passaggio e cosi via .In pratica non si capisce niente e inoltre devo lanciare la query ogni volta che si aggiorna il database.Invece io vorrei che apparisse un box fisso che si aggiornasse continuamente durante lo svolgimento della routine.
Piuttosto cosa intendevi con l' inserire una casella non collegata ?
grazie

dinoxet Profilo | Senior Member

puoi postare un esmpio di quello che stai facendo?
così vedo se riesco a mostrarti quello che intendo



DINOXET
__________________________________________
impossible is only a word

luigice Profilo | Newbie

il pezzo di routine e` il seguente (serve a creare una sequenza di sei numeri per record):

X = Forms![Maschera Qta]!Qta

R = 0
For A1 = 1 To X
For A2 = A1 + 1 To X
For A3 = A2 + 1 To X
For A4 = A3 + 1 To X
For A5 = A4 + 1 To X
For A6 = A5 + 1 To X
R = R + 1
S = Str(R)
MsgBox "Numeri elaborati =, , S"
Forms![Maschera Meno]!N6 = M(1, A6)
Forms![Maschera Meno]!N5 = M(1, A5)
Forms![Maschera Meno]!N4 = M(1, A4)
Forms![Maschera Meno]!N3 = M(1, A3)
Forms![Maschera Meno]!N2 = M(1, A2)
Forms![Maschera Meno]!N1 = M(1, A1)
DoCmd.GoToRecord acDataForm, "Maschera Meno", acNext
Next A6
Next A5
Next A4
Next A3
Next A2
Next A1


Come vedi usando la funzione msgbox andrebbe bene , solo che il messaggio si ferma ogni volta ed attende l' Ok. Invece dovrebbe aggiornarsi continuamente senza sosta.
Fammi sapere
Grazie

alexmed Profilo | Guru

Ciao
Sperando di aver capito il problema, ti consiglio di utilizzare il DoEvents sempre che Access lo supporti (ma credo di si perchè io lo utilizzavo in ambiente VBA con Excel ed Autocad)
In pratica:
Ammettiamo di fare un ciclo su 10000 numeri e visualizzare in tempo reale il numero che sto elaborando.
Il codice potrebbe essere questo:

Private Sub CommandButton1_Click()
Dim i As Integer

For i = 0 To 10000
Label1.Caption = i
DoEvents
Next

End Sub


Ciao

alexmed

luigice Profilo | Newbie

Ma in questo caso il DoEvents funziona solo se premo il tasto CommandButto1 ?
E come faccio a passare la variabile alla casella combianata?
Label.Caption cosa e` ?

Scusa ma non sono molto pratico.
Grazie

Private Sub CommandButton1_Click()
Dim i As Integer

For i = 0 To 10000
Label1.Caption = i
DoEvents
Next

End Sub
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5