Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Aiutate un principiante con Access!!!!
venerdì 29 febbraio 2008 - 14.00
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
nioanto1980
Profilo
| Newbie
4
messaggi | Data Invio:
ven 29 feb 2008 - 14:00
Ciao a tutti vi chiedo gentilmente un aiuto per un principiante di access. Premesso che non so nulla di VB e ben poco di access sono stato incaricato dal mio capo di creare un database per archiviare i clienti. Con access sono riuscito a realizzare la tabella e la maschera che utilizza circa 30 campi. Nella maschera ho inserito i pulsanti "cerca" "aggiungi nuovo" e "chiudi". Funziona tutto ma ho notato che quando cerco un cliente e lo trovo se per errore cambio qualcosa in un campo non posso tornare indietro, perciò ho bloccato uttte le finestre nella maschera. Questo non mi permette di modificare i campi in una nuova schermata perchè dovrei sbloccare uno per uno i campi. Vi chiedo, sapendo che si possono fare cose turche, con access e VB mi potreste dire passo passo come posso fare a creare un bottone che mi abiliti e disabiliti il blocco della modifica dei campi? Inoltre vi chiedo quando faccio il cerca devo sempre settare nella schermata "cerca in" il database e mettere "parte del campo" se no non funziona esiste un modo di poter settarlo in automatico in modo tale da premere cerca e immettere il teso da cercare senza fare ulteriori passaggi? Nel ringraziarvi della paziente Vi saluti. Antonio
grancati
Profilo
| Newbie
29
messaggi | Data Invio:
sab 1 mar 2008 - 00:19
Ciao,
Se esegui per errore una variazione, puoi annullare le modifiche premendo il tasto ESC
Comunque potresti fare in questo modo:
Al posto del pulsante, inserisci una CheckBox (o casella di controllo) non associata nella maschera, scrivi nella sua etichetta "Blocca modifiche", poi apri la maschera delle proprietà, nella proprietà "Nome elemento" inserisci ad esempio chk_LockEdit, nella proprietà "Valore predefinito" inserisci Vero.
Ora seleziona le proprietà della maschera, vai nella scheda eventi, pemi click sull'evento "In Attesa" poi click sui tre puntini a destra di esso, si aprirà la mascherina "Scegli Generatore", seleziona "Generatore di codice" e premi Ok, si aprirà l'editor VBA che mostrerà il codice...
----
Private Sub Form_Dirty(Cancel As Integer)
End Sub
----
Al suo interno scrivi la riga Cancel = Me.chk_LockEdid ottenendo complessivamente:
----
Private Sub Form_Dirty(Cancel As Integer)
Cancel = Me.chk_LockEdit
End Sub
----
in pratica se la CheckBox è spuntata (valore True o Vero) l'evento viene cancellato impedendo le modifiche delle caselle testo associate ai campi dell'origine record della maschera.
Per quanto riguarda il "Cerca" premi Strumenti-->Opzioni poi vai nella scheda "Modifica/Trova" e vedi se una delle tre opzioni "Ricerca sostituzione predefinita" può esserti comoda.
Ciao
Giorgio
nioanto1980
Profilo
| Newbie
4
messaggi | Data Invio:
lun 3 mar 2008 - 08:12
Ciao Giorgio ti ringrazio veramente ho inserito le modifiche ora e funziona tutto. Ti posso chiedere solo un'ultima cosa ho notato che una volta sbloccato la casella per fare modifiche se non fai esc e la riblocchi il programma ti permette comunque di modificare i campi. Esiste un modo che faccia l'ESc automatico? Ciao nuovamente ti ringrazio. Antonio
grancati
Profilo
| Newbie
29
messaggi | Data Invio:
lun 3 mar 2008 - 09:35
Ciao,
se non ho capito male, lo scenario è questo:
L'utente toglie la spunta dalla checkbox quindi la maschera è modificabile, poi modifica qualche casella testo, poi ci ripensa e rimette la spunta sulla checkbox ma ormai la maschera è in stato di dirty e tu vorresti che automaticamente le modifiche apportate vengano annullate.
Fai così:
Vai in struttura maschera, seleziona la checkbox e apri la maschera delle proprietà, vai nella scheda eventi, pemi click sull'evento "Dopo Aggiornamento" poi click sui tre puntini a destra di esso, si aprirà la mascherina "Scegli Generatore", seleziona "Generatore di codice" e premi Ok, si aprirà l'editor VBA che mostrerà il codice...
----
Private Sub chk_LockEdit_AfterUpdate()
End Sub
----
al suo interno scrivi queste righe
----
If Me.chk_LockEdit = True And Me.Dirty = True Then
Me.Undo
End If
----
ottenendo complessivamente il codice...
----
Private Sub chk_LockEdit_AfterUpdate()
If Me.chk_LockEdit = True And Me.Dirty = True Then
Me.Undo
End If
End Sub
----
in pratica se la maschera è stata variata viene eseguito il metodo Undo che annulla le modifiche.
Ciao
Giorgio
nioanto1980
Profilo
| Newbie
4
messaggi | Data Invio:
lun 3 mar 2008 - 14:43
Ciao giorgio mi hai dato un'idea in più e sicuramente applichero questo codice. ma io dicevo questo: spunto la casella e modifico il testo NON faccio esc ribloccco schiacciando lòa spunta il testo continua ed essere modificabile. Ne approfitto per chiederti un'altra cosa. Abbi pazienza ma è da poco che uso access. Esiste la possibilità e premesso che ogni cliente ha un numero sequenziale, di poter inserire una casella di testo dove venga visualizzato il numero dell'ultimo cliente inserito ? Ed anche esiste il modo di bloccare nella maschera la rotella del mouse? Ciao e grazie ancora sei grande!!!!
grancati
Profilo
| Newbie
29
messaggi | Data Invio:
mar 4 mar 2008 - 00:01
Ciao,
sì, la logica si basa sulla proprietà Ditry della maschera, se hai già iniziato la modifica non puoi impedire la variazione a meno di non annullare le modifiche precedenti.
Per rendere più chiara la situazione puoi eliminare il codice messo nell'evento dopo aggiornamento della checkbox e inserire questo nell'evento Prima di aggiornare
----
Private Sub chk_LockEdit_BeforeUpdate(Cancel As Integer)
If Me.chk_LockEdit = True And Me.Dirty = True Then
If MsgBox("Alcuni campi sono stati modificati, si conferma l'eliminazione delle modifiche ", _
vbQuestion Or vbYesNo Or vbDefaultButton2) = vbYes Then
Me.Undo
Else
Cancel = True
End If
End If
End Sub
----
Per quanto riguarda la rotellina del mouse la cosa si complica un po'.
Quarda questa soluzioni:
----
ACC2000: Rilevamento e impedimento dello scorrimento dei record di una maschera mediante la rotellina del mouse
http://support.microsoft.com/kb/278379
----
oppure questa che è più semplice e corredata con un db di esempio
----
mousewheel on off
http://www.lebans.com/mousewheelonoff.htm
----
Ciao
Giorgio
nioanto1980
Profilo
| Newbie
4
messaggi | Data Invio:
mar 4 mar 2008 - 08:06
Ciao Giorgio ti ringrazio ho eseguito tutto tranne la rotella mouse che mi sembra veramente troppo per questa fase. Ciao ti ringrazio ancora dell'aiuto. Antonio
Torna su
Stanze Forum
Elenco Threads
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 !