Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 8 su 8

Problema duplicazione data.

  1. #1
    francesco510 non è in linea Novello
    Salve a tutti!

    Non essendo molto esperto di access, vorrei un vostro aiuto per risolvere un problema da su un db.

    Da un form per l'imissione dati su una tabella relativa a degli eventi, vorrei creare un controllo con un messaggio di avviso quando viene inserita una data già esistente in un altro record.

    Ho provato dalla struttura della tabella ad inserire l'opzione "duplicati non ammessi" e potrebbe anche funzionare, ma ho bisogno di poter decidere se continuare lo stesso oppure no.

    Grazie!

  2. #2
    L'avatar di dodo47
    dodo47 non è in linea Topo di biblioteca
    Ciao
    se non ho capito male, potresti sull'evento dopo aggiornamento del campo data analizzare la presenza o meno della data stessa nella tabella con un DCount, tipo:

    If DCount ("*", "TuaTab", "[TuaData]") > 0 'esiste

    Comunque l'opzione da te utilizzata va ugualmente bene, in quanto non permette la duplicazione della data.

    Con il DCount, invece, una volta trovata la data potresti segnalarne eventuali riferimenti, cioè: "Attienzione, data già presente e relativa all'evento .....", cosa che non ti permetterebbe il semplice duplicati non ammessi nella tabella.

    saluti

  3. #3
    francesco510 non è in linea Novello
    Grazie inanzitutto per l'aiuto!

    Nella casella "data evento" presente nel form, come mi hai suggerito, ho inserito dopo aggiornamento questa istruzione:

    Private Sub Data_Evento_AfterUpdate()
    If DCount("*", "tbl clienti", "[data evento]") > 0 Then
    MsgBox "ATTENZIONE! DATA GIA' PRESENTE"
    Else
    End If
    End Sub

    Però adesso il "messaggio" me lo da su qualsiasi data inserisco.

    Cosa ho combinato che non va?

  4. #4
    L'avatar di dodo47
    dodo47 non è in linea Topo di biblioteca
    Scusami, ovviamente l'evento che conviene sfruttare è prima di aggiornare, non dopo, altrimenti il campo risulterebbe già scritto sulla tabella.

    Allora, nella tua maschera, al fine di evitare confusioni di nomi, al campo "data evento" assegna il nome: MiaData (proprietà>Altro>Nome elemento) e sull'evento prima di aggiornamento scrivi:

    Private Sub MiaData_BeforeUpdate(Cancel As Integer)
    If DCount("*", "tbl clienti", "[data evento]= # " & Format$(Me.MiaData, "mm/dd/yyyy") & "#") > 0 Then
        MsgBox Me.MiaData & " Già esiste.", vbOKOnly, "Duplicato!"
        Me.Undo
    End If
    End Sub
    
    Access, con le date, è alquanto bizzarro...ne so qualcosa io, ma è un'altra storia.

    Un consiglio: non inserire spazi nei nomi delle tabelle e nei campi, ed in genere su tutti gli oggetti access...
    fai sapere

    ciao

  5. #5
    francesco510 non è in linea Novello
    Grazie Domenico

    adesso funziona perfettamente.

    Ma c'è anche la possibilità di poter eventualmente duplicare una data? Mi spiego meglio. Nel msgbox di avviso è possibile inserire un pulsante per andare comunque avanti anche se la data è già presente nella tabella?

    In ogni caso grazie infinitamente!

  6. #6
    L'avatar di dodo47
    dodo47 non è in linea Topo di biblioteca
    ...certo, ma perchè le cose non le dici tutte insieme??

    A patto che il campo nella tabella non abbia duplicati non ammessi, varia così il codice:
    Private Sub MiaData_BeforeUpdate(Cancel As Integer)
    If DCount("*", "tbl clienti", "[data evento]= # " & Format$(Me.MiaData, "mm/dd/yyyy") & "#") > 0 Then
        domanda = MsgBox(Me.MiaData & " E' già presente." & vbCrLf & "Procedi comunque ??.", vbYesNo, "Duplicato!")
        If domanda = vbNo Then
            Me.Undo
        End If
    End If
    End Sub
    

  7. #7
    francesco510 non è in linea Novello
    Scusami, pensavo si era capito nel primo messaggio.

    Adesso, però, mi da errore su "domanda =" e chiede di definire una variabile

    grazie!

  8. #8
    francesco510 non è in linea Novello
    Ho provato a definire la variabile mancante (altrimenti non imparo mai!) così:

    Dim domanda As String

    ed è tutto ok

    grazie ancora !

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Duplicazione file xml
    Da maingio nel forum Microsoft Excel
    Risposte: 18
    Ultimo Post: 08-04-2018, 21:01
  2. Duplicazione file xml
    Da maingio nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 06-04-2018, 13:35
  3. Duplicazione di una parte del record
    Da sergranero nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 20-06-2013, 11:00
  4. Errore duplicazione del indice
    Da EgonLaHire nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 16-03-2012, 13:37
  5. Risolto: Impedire duplicazione in datagridview
    Da maxottav nel forum Visual Basic .Net
    Risposte: 9
    Ultimo Post: 12-03-2011, 19:41