Newsgroup: it.comp.appl.access
Titolo: problema con open form

ciao a tutto l'ng
premetto le caratteristiche tecniche del mio pc
P3 350 mhz, so Win 98 se access 97
ed ecco il mio problema
ho una tabella  (es clienti) che accoglie ogni mese la posizione dei clienti
ed è del tipo
data
codicecliente
zona
posizione
note
i dati relativi a codice cliente, zona e posizione mi vengono forniti da un
altro file e quindi mi limiti ad accodarli alla tabella preesistente dove i
diversi mesi vengono evidenziati appunto dal campo data (la data è sempre
uguale per ogni singolo mese)........a me resta compilare solo il campo note
che accoglie appunto delle annotazioni in ordine alla situazione del cliente
(note è un campo memo)
ora per compilare il campo note ho creato una maschera basata sulla tabella
clienti. Ho dovuto pero' constatare che quando avvio la maschera access si
posizione sempre sul primo record della 
tabella.il
 tal modo per trovare i
dati immessi nell'ultimo mese devo fare una ricerca enorme.
per questa ragione ho ipotizzato un apertura condizionale della tabella da
filtrare attraverso una query che ho chiamato "date" e che mi restituisce
(maxdidata) la data più recente presente in tabella clienti.  Quindi ho
creato una seconda maschera che contiene un bottone al cui evento su click è
collegato il seguente script
Private Sub Comando0_Click()
Dim dbs As Database
Dim rst As Recordset
Dim fld As Field
Dim stringa As string
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("date")
Set fld= rst.Fields("MaxDiData")
stringa= MsgBox("la data dell'ultimo aggiornamento della base dati è" & fld)
DoCmd.OpenForm "clienti", , , "Data = fld"
End Sub
purtroppo qui sorge il primo problema: nonostante per stringa il valore di
fld venga correttamente valorizzato, quando poi il codice esegue il comando
openform (almeno così come è scritto) mi appare un input box che mi chiede
di digitare un valore per fld.................ovviamente se ci metto il
valore giusto( quello che mi compare anche dal msgbox) ottengo l'apertura
filtrata che volevo..............ma inverità mi aspettavo che la variabile
fld venisse riconosciuta..........
e qui nasche il secondo problema.........se volessi che il comando openform
tenesse conto di due variabili?
mi spiego se volessi che la tabella venisse aperta filtrata per zona e per
data?
 io ho provato a scrivere così
............
DoCmd.OpenForm "clienti", , , "Data = fld" and "zona=sud"
ma. ovviamente non funziona...........
qualcuno potrebbe essere così cortese da dirmi dove sbaglio?
ringrazio anticipatamente tutto il gruppo
e resto in attesa di lumi
ciao
Antonio

 
  Durante un confronto, le vanno indicate tra 2 'cancelletti' 
(#), le stringe tra apici (vedi help in linea).
  Le variabili vanno specificate fuori dagli apici (che 
racchiudono una stringa fissa, immutabile).
  Dunque sarà:
DoCmd.OpenForm "clienti", , , _
      "Data = #" & fld & "# " _
      "AND zona=" & chr$(34) sud & chr$(34)
  Ciao.
-- 
-------------------------------------
http://digilander.libero.it/falsim/
-------------------------------------

qualcuno potrebbe essere cosě cortese da dirmi dove sbaglio?
Qui mi sarei appogiato a una query , ma c'č sicuramente di meglio.
Ciao. Fabrizio

   Ciao.
Ciao SImone e grazie per la collaborazione, ma mi trovo costretto a chiedere
ancora aiuto.........
infatti ho riscritto il codice come mi hai indicato ma, ahime' ancora non
va..........infatti nonostante abbia indicato la variabile fld, che esorime
una data, tra cancelletti quando vado ad eseguire il codice mi restituisce
una maschera che filtrata a zero record...........
mi chiedo se la causa non possa essere il fatto che il recordset che ho
scelto sia una funzione di aggregazione?
ad ogni buon conto potresti per favore precisarmi meglio la sintassi?
inoltre quando vado a linkare le due condizioni con and il codice si
interrompe e mi dice che i tipi sono non corrispondenti.............
ringrazio ancora per l'aiuto e ti saluto.
Ciao
Antonio

 ha scritto nel messaggio
news:rgru9.34335$aL4.1...@news1.tin.it...

Se il campo zona è di tipo testo prova con:
DoCmd.OpenForm "clienti", , , _
      "Data = #" & Format(fld, "mm/dd/yyyy") & "# " _
      " AND zona=" & chr$(34) & sud & chr$(34)
se invece il campo zona è numerico prova con:
DoCmd.OpenForm "clienti", , , _
      "Data = #" & Format(fld, "mm/dd/yyyy") & "# " _
      " AND zona=" & sud
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------