+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [access]Forzare inserimento chiave primaria

  1. #1
    RINCOALISA non è in linea Scolaretto Ultimo blog: It's Spring
    Luogo
    Sardegna-Cagliari
    Post
    485
    Blogs
    2

    [access]Forzare inserimento chiave primaria

    Ciao ragazzi, ho questo stupido problema a cui non ho trovato soluzione:
    ho creato una maschera per l'inserimento dei dati in più tabelle tutte relazionate tra loro e con chiave primaria o esterna il campo trackingNumber
    il problema è che se l'operatore non inserisce il campo iniziano a venir fuori tutti i messaggi di errore, ecco io ho inserito questo codice:
    codice:
    Private Sub txtTrackingNumber_Exit(Cancel As Integer)
        If Len(Me.txtTrackingNumber & "") <= 0 Then
            MsgBox "errore"
            Me.txtTrackingNumber.SetFocus
        End If
        
    End Sub
    che controlla se il campo ha lunghezza inferiore o uguale a 0 e in quel caso mette un messaggio di errore e poi dovrebbe riportare il focus alla casella stessa...il problema è che il focus non viene assegnato, anzi l'istruzione viene ignorata per far spazio all'ordine di tabulazione...come posso forzare l'inserimento visualizzando i miei messaggi di errore?
    Grazie in anticipo
    Alice

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    12,006
    Quote Originariamente inviato da RINCOALISA Visualizza il messaggio
    Ciao ragazzi, ho questo stupido problema a cui non ho trovato soluzione:
    ho creato una maschera per l'inserimento dei dati in più tabelle tutte relazionate tra loro e con chiave primaria o esterna il campo trackingNumber
    il problema è che se l'operatore non inserisce il campo iniziano a venir fuori tutti i messaggi di errore, ecco io ho inserito questo codice:
    codice:
    Private Sub txtTrackingNumber_Exit(Cancel As Integer)
        If Len(Me.txtTrackingNumber & "") <= 0 Then
            MsgBox "errore"
            Me.txtTrackingNumber.SetFocus
        End If
     
    End Sub
    che controlla se il campo ha lunghezza inferiore o uguale a 0 e in quel caso mette un messaggio di errore e poi dovrebbe riportare il focus alla casella stessa...il problema è che il focus non viene assegnato, anzi l'istruzione viene ignorata per far spazio all'ordine di tabulazione...come posso forzare l'inserimento visualizzando i miei messaggi di errore?
    Grazie in anticipo

    Non forzi l'annullamento dell'Evento pertanto è normale...!
    In ogni caso la lunghezza di una Stringa non sarà MAI minore di ZERO.
    Prova così:
    codice:
    Private Sub txtTrackingNumber_Exit(Cancel As Integer)
        If Len(Me.txtTrackingNumber & "") = 0 Then
            Cancel=True
            MsgBox "errore"
            Me.txtTrackingNumber.SetFocus
        End If
    End Sub
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  3. #3
    RINCOALISA non è in linea Scolaretto Ultimo blog: It's Spring
    Luogo
    Sardegna-Cagliari
    Post
    485
    Blogs
    2
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Non forzi l'annullamento dell'Evento pertanto è normale...!
    In ogni caso la lunghezza di una Stringa non sarà MAI minore di ZERO.
    Prova così:
    codice:
    Private Sub txtTrackingNumber_Exit(Cancel As Integer)
        If Len(Me.txtTrackingNumber & "") = 0 Then
            Cancel=True
            MsgBox "errore"
            Me.txtTrackingNumber.SetFocus
        End If
    End Sub
    Non sapevo che si dovesse annullare l'evento..., provato e funziona, ti ringrazio tantissimo
    Alice

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    12,006
    Quote Originariamente inviato da RINCOALISA Visualizza il messaggio
    Non sapevo che si dovesse annullare l'evento..., provato e funziona, ti ringrazio tantissimo
    Prova a pensare... se l'evento in questione viene eseguito...essendo un EXIT il controllo perde il Focus... in ogni caso e perforza, anche se tu alll'interno lo forzi...!

    L'opzione Cancel prevista in alcuni eventi serve proprio per EVITARE che ll'evento in questione venga portato a termine a vantaggio di azioni personalizzate.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi