If...then....else

di il
5 risposte

If...then....else

Un database mi girava senza problemi con Access 2003. (ved. righe di codice qua sotto)
Con Access 2013 invece si pianta indicandomi errore di codice sulla scritta della "if". Io non vedo l'errore.
Tu mi hai già accennato che esiste una funzione ad hoc: esisteva già su access 2003? Se sì allora si spiega la mia inesperienza in merito. Resta il fatto, per me inspiegabile, che non funzioni su access 2013.
Se non ti è di troppo disturbo (anche se poi non userò più questo codice), puoi dirmi dov'è l'errore? Resto comunque in attesa della funzione dedicata e come come applicarla. Grazie mille

Private Sub data_Exit(Cancel As Integer)
Dim DayNum
If [data] <> "# / / #" Then Mi evidenzia questa scritta dicendo che c'è qualcosa che non va a livello punteggiatura, parentesi, ecc
Label97.Visible = True
DayNum = Weekday([data]) ' Ricava il giorno corrente della settimana.
Select Case Val(DayNum)
Case 1
Label97.Caption = "Domenica"
Case 2
Label97.Caption = "Lunedì"
Case 3
Label97.Caption = "Martedì"
Case 4
Label97.Caption = "Mercoledì"
Case 5
Label97.Caption = "Giovedì"
Case 6
Label97.Caption = "Venerdì"
Case Else
Label97.Caption = "Sabato"
End Select
Else
Label97.Visible = False
End If
End Sub

5 Risposte

  • Re: If...then....else

    Quello che hai scritto è sbagliato a prescindere la versione...
    Se vuoi validare la data si usa la valutazione nel controllo oppure puoi verificare con IsDate(...)
    In ogni caso come ti ho detto prima... quel codice non serve a nulla.

    Leggi questa funzione
    https://support.office.com/it-it/article/funzione-weekdayname-638adafd-9923-455b-a2fe-46cf50d8d751
  • Re: If...then....else

    Forse non mi sono spiegato bene ma io non voglio validare la data.
    Quando si aggiunge un record la prima cosa che viene scritta è la data (inoltre le date possono non essere consecutive), e voglio soltanto che mi indichi di fianco alla data stessa (in una casella label o text) il relativo giorno della settimana.
    La funzione WeekdayName() non mi pare che mi restituisca il giorno della settimana in funzione della data. Da quel che ho letto, dovrò comunque inserirla in un codice simile a quello che ho riportato o no ? Mi sembra che la Weekday() da me utilizzata nel codice sia più indicata.
    Non so esattamente cosa intendi per sbagliato ma ciò che ho scritto riguardo alle due versioni è vero....non mi spiego perché quel codice funziona su uno e non sull'altro ...mi sembra che qualcosa a livello vba sia cambiato... se no non mi darebbe l'errore. Era una mia curiosità saperlo.
    Grazie per l'attenzione
  • Re: If...then....else

    Spiega cosa vorrebbe essere o fare questa riga di codice...
    
    If [data] <> "# / / #" Then
    Per la 2° che hai risposto sei stato superficiale..., io mi venisse dato un suggerimento, prima lo proverei..., giusto non togliere dubbi alla mia poca esperienza.
    Questa riga di codice, come ti avevo detto, fa quello che tu hai fatto con tutte quelle sopra:
    
    weekdayname(weekday(Date()))
    Detto questo... mi pare tu abbia parecchia confusione.
  • Re: If...then....else

    Sarà l'età? Io di confusione ne ho parecchia ma forse dovuta al fatto che non sono un programmatore e neanche ho la pretesa di esserlo. Mi vedo queste cose per il puro sfizio personale.
    La riga di codice if... verifica se viene inserita una data oppure no. Se sì, procede ed evidenzia, nella label, il relativo giorno della settimana. Mi resta il tarlo del perché col 2003 andava e col 2013 si pianta.
    Ora sto facendo le prove con il codice che mi hai passato inserendolo in una text box (=WeekdayName(Weekday([Data];0))). Tutto è ok salvo il fatto che vedo il giorno dopo il successivo clic e quando passo ad un nuovo record con campo data vuoto qui mi ritrovo "#Type!". Dopo inserita la data tutto va a posto.
    Grazie per l'assistenza.
  • Re: If...then....else

    Quello che fai per controllare sia stata inserita la data è quello che viene comunemente chiamato VALIDAZIONE come ti dicevo prima... e non si fa come hai fatto tu.
    Ti ho spiegato come fare sei libero.

    Per il resto... dire "Non sono un programmatore" a cosa dovrebbe servire...?
    Se sei qui a chiedere è indice tu voglia una soluzione tecnica... e questa arriva da chi ha competenza a prescindere sia programmatore di professione o meno... e te la fornisce con vocabolario tecnico al quale tu dovresti cercare di adeguarti.... viceversa non è sostenibile.

    Se invece ribadire di non essere programmatori è un modo per mettere le mani avanti "aiutatemi perché so poco e poco mi interessa stidiare basta risolvere il.contingente"... va da se...
Devi accedere o registrarti per scrivere nel forum
5 risposte