Newsgroup: it.comp.appl.access
Titolo: Help principiante

Sto costruendo un programmino che mi gestisce/dovrebbe gestire le
prenotazioni di un albergo. Ho quindi una tabella "registrazioni" con
diversi campi tra questi "data inizio periodo" - "data fine periodo".
Problema quando vado ad inserire le due date (inizio - fine) nella mia
maschera (collegata alla tabella "registrazioni") sarebbe bello che il mio
programmino mi dicesse "Non é possibile registrazione, periodo giá occupato"
se  nella tabella é giá presente il periodo che sto cercando di inserire.
Esempio nella tabella esiste periodo 01/01/2001-15/01/2001, voglio inserire
nuova registrazione con periodo 02/01/2001-07/01/2001, allora esce msg che
avverte che la registarzione non é possibile.
Sono alle prime armi Vi prego quindi di non essere troppo tecnici nelle
risposte, ringrazio anticipatamente chi mi risponderá.
Paolo

 ha scritto nel messaggio
news:9j9tf2$6ob$1...@serv1.iunet.it...


 ha scritto nel messaggio
news:9j9tf2$6ob$1...@serv1.iunet.it...

Immagino che le registrazioni tu le debba gestire al livello di camera e che
quindi nella tabella "registrazioni" tu abbia anche un campo di tipo Testo
chiamato "numero camera".
Per quanto riguarda la soluzione ti consiglio di leggere i messaggi del
thread aperto da morphous il 12/7/2001 alle ore 19:19 e che ha per oggetto
"Controllo date".
Morphous invece di affittare camere doveva risolvere un problema di noleggio
autovetture, quindi la problematica è identica alla tua.
Se qualcosa non ti è chiaro, rifatti vivo.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Graze a tutti e due ora provo poi vi faccio sapere, grazie ancora

Scusate l'imbranataggine ma come faccio a visualizzare quasti msg:
"Per quanto riguarda la soluzione ti consiglio di leggere i messaggi del
thread aperto da morphous il 12/7/2001 alle ore 19:19 e che ha per oggetto
"Controllo date"."
Grazie Paolo

 Il problema è risolvibile con un piccolo codice del tipo:
Caspiterina non mi funziona mi si blocca su sta riga:
If data_inizio >= PrenotazioniSET.[PrenotazioniDal] And data_inizio <=
PrenotazioniSET.[PeriodoAl] Then
MsgBox ("Data Inizio in un periodo già occupato")
mi evidenzia [PrenotazioniDal] e mi dice "impossibile trovare il metodo o il
membo dei dati".
Io di VB non ne capisco niente ma se non ho capito male se scrivo
PrenotazioniSet., dopo il punto mi appare automaticamente una maschera a
cascata e li ci dovrei trovare quello che ci va dopo il punto, quindi dovrei
trovare [PrenotazioniDal] perche mi funzioni, ed invece non lo trovo.
Nelle righe precedenti ho scritto tutto giusto riportando nome di tabella e
nomi controlli in maschera.
Una domanda poi, quando scrivi ME!, questo significa maschera che in quel
momento é aperta o cosa.
Garzie e comunque buona domenica

 Grazie
Se la tabella si chiama Prenotazioni e contiene tre campi chiamati TargaAuto
(Testo), InizioPren (Data/ora) e FinePren (Data/ora).
Se la maschera contiene tre caselle di testo chiamate anche loro TargaAuto,
InizioPren e FinePren associate ai relativi campi della tabella
Prenotazioni.
A fronte dell'evento "Prima di aggiornare" della tua maschera genera il
seguente codice VBA:
Dim Noleggio As Integer
Noleggio = 0
If IsNull(Me!InizioPren) Then
    MsgBox "Digita la data di inizio noleggio"
    Cancel = True
    Me!InizioPren.SetFocus
    Exit Sub
End If
If IsNull(Me!FinePren) Then
    MsgBox "Digita la data di fine noleggio"
    Cancel = True
    Me!FinePren.SetFocus
    Exit Sub
End If
Noleggio = Noleggio + DCount("[TargaAuto]", "Prenotazioni", _
"TargaAuto=" & Chr$(34) & TargaAuto & Chr$(34) & _
" And InizioPren >=#" & Format(InizioPren, "mm/dd/yyyy") & _
"# And InizioPren <= #" & Format(FinePren, "mm/dd/yyyy") & "#")
Noleggio = Noleggio + DCount("[TargaAuto]", "Prenotazioni", _
"TargaAuto=" & Chr$(34) & TargaAuto & Chr$(34) & _
" And InizioPren <#" & Format(InizioPren, "mm/dd/yyyy") & _
"# And FinePren >= #" & Format(FinePren, "mm/dd/yyyy") & "#")
If Noleggio > 0 Then
    MsgBox "L'autovettura " & Me!TargaAuto & _
    Chr$(10) & Chr$(13) & _
    "è già noleggiata nel periodo dal" & _
    Chr$(10) & Chr$(13) & _
    Me!InizioPren & Chr$(10) & Chr$(13) & "al" & _
    Chr$(10) & Chr$(13) & Me!FinePren
    Cancel = True
    Me!InizioPren = Null
    Me!InizioPren.SetFocus
    Me!FinePren = Null
End If
Prova e facci sapere se funziona.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
================================

Ti ringrazio molto per la cortesia, uso outlook Express, ho solo un msg di
data 12.07.2001 e nessun msg con oggetto contol date.
Comunque non é un problema provo con il  codice che, gentilmente, hai
inserito nella risposta.
Purtroppo oggi é domenica e non posso provare, giá la mia ragazza é
incazzata perché ho acceso il pc.
Ciao, grazie ancora e buona domenica.

X Roberto
Non voglio ovviamente abusare della tua cortesia peró (sicuramente sono io
che canno qualche cosa) non funziona
Mi funzionano i msg se i campi della maschera PeriodoDal, Periodo Al sono
vuoti, ma non il discorso del controllo se esite giá quella determinata
prenotazione.
Mi si blocca su questa riga dicendomi " Tipi di dati non corrispondenti
nell'espressione criterio"
Noleggio = Noleggio + DCount("[IDcliente]", "TBLAssistenze", "IDcliente=" &
Chr$(34) & IDcliente & Chr$(34) & " And PeriodoDal >=#" & Format(PeriodoDal,
"mm/dd/yyyy") & "# And PeriodoDal <= #" & Format(PeriodoAl, "mm/dd/yyyy") &
"#")
La mia tabella si chiama: TBLAssistenze
il campo (numerico), in tabella, relativo al numero della stanza: IDcliente
i campi, in tabella, relativi ai periodi: PeriodoDal, PeriodoAl
se mi potessi dare indicazioni su cosa controllare
Grazie Paolo


Ok risolto, funziona grazie a tutti.
Il problema l'ho risolto con un giochetto, effettivamente non mi funzionava
perche il campo id cliente é numerico e non di testo e purtroppo non potevo
cambiarne il formato altrimenti altre cose non mi funzionavano, ho creato un
campo doppione in formato testo e tutto funziona.
Grazie ancora un bacio a tutti

 ha scritto nel messaggio
news:9jgl1i$jkt$1...@serv1.iunet.it...

Visto che IDCliente è numerico, quello che io ho postato come:
Noleggio = Noleggio + DCount("[TargaAuto]", "Prenotazioni", _
"TargaAuto=" & Chr$(34) & TargaAuto & Chr$(34) & _
" And InizioPren >=#" & Format(InizioPren, "mm/dd/yyyy") & _
"# And InizioPren <= #" & Format(FinePren, "mm/dd/yyyy") & "#")
Noleggio = Noleggio + DCount("[TargaAuto]", "Prenotazioni", _
"TargaAuto=" & Chr$(34) & TargaAuto & Chr$(34) & _
" And InizioPren <#" & Format(InizioPren, "mm/dd/yyyy") & _
"# And FinePren >= #" & Format(FinePren, "mm/dd/yyyy") & "#")
tu lo devi scrivere:
Noleggio = Noleggio + DCount("[IDcliente]", "TBLAssistenze", _
"IDcliente=" & IDcliente & _
" And PeriodoDal >=#" & Format(PeriodoDal, "mm/dd/yyyy") & _
"# And PeriodoDal <= #" & Format(PeriodoAl, "mm/dd/yyyy") & "#")
Noleggio = Noleggio + DCount("[IDcliente]", "TBLAssistenze", _
"IDcliente=" & IDcliente &  _
" And PeriodoDal <#" & Format(PeriodoDal , "mm/dd/yyyy") & _
"# And PeriodoAl>= #" & Format(PeriodoAl, "mm/dd/yyyy") & "#")
così non dovrai crearti un campo doppione di tipo testo.
