+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

Errore Funzione controllo duplicati

  1. #1
    L'avatar di orpo970
    orpo970 non è in linea Scolaretto
    Buongiorno a tutti, ho la seguente funzione che verifica se un certo valore è stato duplicato o meno (anno) che non funziona più,

    Function YearVerificationCheck(ByVal Text As String) As Boolean
       Dim Number As Integer
       Dim DuplicateYear As Boolean = False
       Dim Result As Boolean = Int32.TryParse(Text, Number)
       Dim RecurrenceCounter As Int16 = 0
       Dim Index as Int16 = 0
            For Index = 0 To CType(MyDGVFiscalYears.DisplayedRowCount(True) - 2, Int16) + CounterNumberSelectedRowsDelete
                    If Equals(Text, MyDGVFiscalYears.Item(1, Index).Value.ToString) = True And MyDGVFiscalYears.Rows(Index).Tag IsNot "DeleteRecord" Then
                       RecurrenceCounter = RecurrenceCounter + CType(1, Int16)
                    End If
            Next
                    If RecurrenceCounter > 1 Then
                       DuplicateYear = True
                    End If
                    If Result = True And DuplicateYear = False And Number < 1899 And Number <= CType(CurrentYear, Int16) Then
                       Return True
                    Else
                       Return False
                    End If
    End Function
    
    ovvero mi restituisce sempre "false" nonostante abbia controllato che i valori delle condizioni è esatto.

    L'errore in realta è sorto dopo aver inserito "And MyDGVFiscalYears.Rows(Index).Tag IsNot "DeleteRecord"" alla condizione di cui sopra, senza funziona ed è quindi evidente che stia li ma non riesco ad intercettarlo. Riuscireste a darmi una mano, grazie

  2. #2
    Sgrubak non è in linea Scribacchino
    Sulla scrittura della funzione ci sarebbero parecchie cose da riscrivere secondo me. In ogni caso proverei a chiamare il metodo ToString della proprietà Tag. Tu sei sicuro che sia impostata e che lo sia come vuoi tu?
    In alternativa, se la DGW è collegata ad una tabella si potrebbe pensare di verificare il DataRowState della riga della DataTable.

  3. #3
    Io ho l'impressione che il valore "DeleteRecord" non sia presente nel tag.

    Non è che hai scritto male e dovrebbe essere "DeletedRecord" ?

    Questo lo puoi controllare da solo con un po' di debugging ...
    ℹ️ Leggi di più su AntonioG ...

  4. #4
    L'avatar di orpo970
    orpo970 non è in linea Scolaretto
    Ringrazio entrambi,

    @AntonioG purtroppo il valore è esatto ed il debug attraverso messagebox (il debug punto-punto non so perchè non mi funziona piu') mi restituisce i valori esatti

    @Sgrubak il DGV non è collegato ad un datatable ma viene alimentato direttamente dal DB

    Il controllo viene effettuato direttamente nei campi del DGV, attraverso la Cellvalue viene stabilito se trattasi di insert o Update ed attraverso UserDeletingRow se sono state eliminate delle righe, inserendo nei vari tag l'operazione richiesta, dopodiche con un ciclo, riga per riga leggo il tag e richiamo la relativa procedura (insertrecord, updaterecord e deleterecord)

    Funzionava bene, poi mi sono reso che il controllo duplicato l'ho svolgeva anche sulla riga eliminata percui ho inserito la condizione MyDGVFiscalYears.Rows(Index).Tag IsNot "DeleteRecord" in modo che se incontra una riga eliminata deve saltare il RecurrenceCounter = RecurrenceCounter + CType(1, Int16), ma qui la funzione continua sempre a darmi "false"

  5. #5
    Scusa ma questa

    And Number < 1899

    A cosa ti serve? Restituirà true solo per valori minori di 1899
    ℹ️ Leggi di più su AntonioG ...

  6. #6
    L'avatar di orpo970
    orpo970 non è in linea Scolaretto
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    Scusa ma questa

    And Number < 1899

    A cosa ti serve? Restituirà true solo per valori minori di 1899
    Hai ragione era questo il problema, nei vari tentativi avevo riscritto male la condizione, grazie

    A volte il codice bisogna farlo leggere a terzi perche' anche gli errori più ovvi non si riescono a vedere.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. controllo dati duplicati
    Da dvdbarrett nel forum Microsoft Access
    Risposte: 23
    Ultimo Post: 06-07-2017, 13:10
  2. Controllo duplicati in listview
    Da olam0436 nel forum Microsoft Excel
    Risposte: 1
    Ultimo Post: 18-03-2017, 16:00
  3. Access controllo duplicati
    Da gondoliere nel forum Microsoft Access
    Risposte: 2
    Ultimo Post: 15-01-2009, 21:26
  4. [ACCESS - VBA] Funzione ricerca duplicati in una form
    Da windswalker nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 12-05-2008, 11:39
  5. Controllo Duplicati
    Da testpegaso nel forum Visual Basic 6
    Risposte: 6
    Ultimo Post: 03-01-2007, 14:19