Campi automatici Access

  • Creatore Discussione Creatore Discussione iarrub
  • Data di inizio Data di inizio

iarrub

Nuovo Utente
19 Lug 2004
12
0
0
Ciao a tutti
1- Mi potreste dire come devo fare per far compilare in automatico un campo vuoto con un numero fisso?
es nella mia maschera nel campo graduatoria, ho dei records vuoti (persone non in graduatoria) come faccio a dire scrivi 9999 nei campi vuoti?

2-come faccio a far compilare un campo quando un altro di una sottomaschera è compilato?
es metti "sì" (spunta) se il campo colloquio (in sottomaschera) è compilato...

3-ordinando in ordine alfabetico, i records di una maschera come faccio a portare i campi vuoti in coda e non in testa?
es Adorni deve venire come primo mentre i campi non compilati come ultimi

ciao a tutti e grazie
 
in "mostra struttura" seleziona la casella che ti interessa, vai alle proprietà e seleziona "origine dati" alla voce "valore predefinito" mettici il valore che desideri appaia.
per il resto non sei stato un modello di chiarezza, dovresti essere più preciso.
ciao :byebye:
 
Campo automatico

Caro zwack..grazie per la chiarezza dei quesiti hai ragione..cerco di spiegarmi meglio
Allego un db esempio per farmi capire meglio:
La situazione è questa ho una maschera che si chiama Controllo che ha al suo interno una sottomaschera ordini (logicamente per la stessa azienda ci possono essere più ordini). quello che vorrei è che quando nella sottomaschera ordini è compilato il campo banca in automatico nella maschera controllo venga compilato con un click (sì) il campo contattare.
Ovvero devono essere contattate tutte le aziende che hanno il campo banca compilato!
come fare?
mi puoi scrivere esattamente tutto il procedimento e la stringa che devo digitare? dove? in maschera o in tabella? devo fare una query?
tante grazie Luciano
 

Allegati

ho dato un'occhiata al tuo db, la routine è a posto...e dovrebbe funzionare così (le mie conoscenze di VBA sono un pò scarse) ma la cosa che non capisco è l'utilità di aggiornare in automatico un comando che hai sotto gli occhi nelle stessa maschera, francamente mi sembra una inutile complicazione, dopotutto si tratta di fare un semplice click un cm. sopra, la filososia che sta alla base dei db è la massima semplificazione e leggerezza, per avere max. facilità di gestione.

per quanto riguarda l'ultima parte del quesito (accodare i campi vuoti o non aggiornati) devi fare una query di accodamento, Io purtroppo sono in partenza per lavoro per le prox due settimane e se non puoi aspettare dai una occhiata qui, tutto quello che c'è da imparare sui db è qui.
www.csai.unipa.it/cossentino/access
ciao e buon lavoro.
 
Filtri

Ciao Zwack..innanzitutto grazie
mi serve l'aggiornamento automatico per il passato..ovvero ci sono circa 7000 records da controllare e spuntare a mano..ecco l'utilità non volgio (per il passato) farlo a mano io..

grazie per il sito ci darò un'occhiata
iarrub
 
rispo

ciao il punto 1 ancora non lo ho risolto...ho un dbase con 7000 records...vorrei che nei campi vuoti di graduatoria si mettesse 9999...ma come faccio?
se vado nella tabella graduatoria li ho solo quelli in graduatoria (750), come faccio a mettere 9999 nei rimanenti 6000?
ciao grazie iarrub
 
Prova questo codice dovrebbe andare.Devi creare un pulsante che richiama questa sub, ho supposto che la tua tabella si chiama Tab1 e che il campo che ti interessa si chiama graduatoria basta modificare questi dati e il resto lasciarlo per com'è.


Private Sub Inserimento()
On Error GoTo Add_Err
'Scorre la tabella ed analizza record per record

Dim Tbl As Recordset
DoCmd.Hourglass True
Set Tbl = CurrentDb.OpenRecordset("Tab1", dbOpenDynaset)
Tbl.MoveFirst
While Not (Tbl.EOF)

If (Tbl!graduatoria) = Null Then
Tbl.Edit
Tbl!graduatoria = 9999
Tbl.Update
End If

Tbl.MoveNext
Wend
Tbl.Close

Add_Err:
MsgBox Err.description, vbCritical, MsgTitle
Resume Next
End Sub
 
Ultima modifica:
precisazione

Ciao Achille47 grazie della risposta..ti chiedo delle spiegazioni..
allora io ho una maschera principale che tramite delle query racchiude nei suoi campi una ventina di tabelle..
Una di queste tabelle è "graduatoria" che è formato da circa 650 records (persone in graduatoria)
Nella maschera invece i records totali sono 7000 e come ti ho detto quindi, nel campo graduatoria della maschera solo 650 hanno un valore, gli altri sono vuoti.
Quello che vorrei fare è mettere nei campi vuoti il valore 9999.
Se la stringa che mi hai scritto risolve il mio problema la domanda è:
mi hai scritto di creare un pulsante...lo creo nella maschera principale?

ciao grazie Iarrub
 
Si inserisci un pulsante nel form principale che richiama la procedura con:

call Inserimento()

devi mettere al posto di Tab1 la tabella che contiene il campo graduatoria.
 
non gira

Caro Achille47..non gira...

mi segna errore su graduatoria.edit

ti scrivo i dati:
la maschera principale si chiama BS-farm
la tabella si chiama GRADUATORIA e il campo della tabella che contiene il dato numerico GRADUA

Sul pulsante metto in open form?
cosa vuol dire richiama con call inserimento ()

mi puoi scrivere la stringa con i dati che ti ho dato?

ciao grazie mille Iarrub
 
Vai in visualizzazione codice visual basic del form pricipale controlla che siano abilitati nel menù strumenti > riferimenti le seguenti librerie:
Microsoft DAO 3.x object librery
Microsoft ADO ext. 2.x for DLL and Security
se non sono abilitate allora abilitale, poi
crea un pulsante nel form principale chiamalo "p_inserimento" e dopo incolla nel codice del form tutto il codice qui sotto, fatto questo clicca nel pulsante appena creato dovrebbe funzionare.

Private Sub p_inserimento_Click()

call Inserimento()

End Sub


Private Sub Inserimento()
On Error GoTo Add_Err
'Scorre la tabella ed analizza record per record

Dim Tbl As Recordset
DoCmd.Hourglass True
Set Tbl = CurrentDb.OpenRecordset("GRADUATORIA", dbOpenDynaset)
Tbl.MoveFirst
While Not (Tbl.EOF)

If (Tbl!GRADUA) = Null Then
Tbl.Edit
Tbl!GRADUA= 9999
Tbl.Update
End If

Tbl.MoveNext
Wend
Tbl.Close

Add_Err:
MsgBox Err.description, vbCritical, MsgTitle
Resume Next
End Sub
 
mannaggia

Caro Achille47 purtroppo non gira...errore di compilazione in
tbl.edit "impossibile trovare il metodo o il membro dei dati"

i riferimenti delle librerie ado e dao sono attivati...

cosa può essere?
ciao Iarrub
 
prova a mettere sempre nei riferimenti con priorità ADO prima di DAO se non va neanche così prova a mandarmi un database con la tabella interessata con dati d'esempio ma con la stessa struttura.
 

Discussioni simili