Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [vb6] confronto dati con database

    spero che il mio titolo sia appropriato

    ho un piccolo problema (voi direte ancora???che rompiballe questa) lo so lo so

    allora chiedo il vostro aiuto per risolvere un problema ho una form dove inserisco vari dati ad esempio nome cognome via data codice ecc...

    se ad esempio nel campo codice il numero 001 è gia presente come faccio a far apparire una msgbox che avverte che quel numero è gia presente nel database?e quindi non è possibile accettarne due?

    grazie mille per la vostra santa pazienza

  2. #2
    Bisogna vedere come hai impostato il database, cioè se quel campo Codice ha associato una chiave primaria oppure no. Presupponendo che la risposta sia affermativa, allora per capire se il nuovo record che stai per aggiungere ha un codice doppione basta intercettare l'errore sul metodo update:
    codice:
    'modifica dei campi
    rs("Codice") = Text1.Text
    '...
    
    On Error resume Next
    rs.Update
    If Err.Number <> 0 Then
        MsgBox Err.Description
    End If
    
    On Error Goto 0
    Chi non cerca trova.

  3. #3
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao laura, ci sono diversi modi per risolvere questo dipo di problema, dipende anche da come è strutturato il tuo database.
    Ad esempio:
    1) se nella tua tabella il codice è un contatore, allora non c'è bisogno che lo fai imputare dall'utente.

    2)se il codice è un numero progressivo che aumenta all'aumentare dei record, allora quando si è nella fase di inserimento di un nuovo record il codice lo proponi tu all'utente, contando i record+1 (una cosa del tipo SELECT COUNT(*)+1 AS CODICE_DISPONIBILE FROM.... in questo caso basta prendere il valore di CODICE_DISPONIBILE)

    3)altra soluzione, prima di aggiungere il record verifichi che non ci sia quel codice (SELECT CODICE FROM TABELLA WHERE CODICE= TuoCodice) se la query restituisce un record allora il codice esiste altrimenti no.

    Spero di averti dato alcuni punti su cui lavorare.. altrimenti siamo qui...
    Jupy

  4. #4
    O fai una select con where condition campocodice = 001 e poi ti testi il valore di ritorno oppure se il codice 001 viene inserito su un campo con chiave primaria ti gestisci l'errore di chiave duplicata.

    Spero di averti aiutato.

    Ciao

    Azz, non avevo visto cle altre risppste...scusate


  5. #5
    spero possiate perdonarmi ma non ho capito molto bene...cmq il codice lo mette l'utente a libera scelta diciamo quindi non fanno inmodo progressivo tipo 001 002 003 ecc ma potrebbero essere numeri e lettere boh...

    io inserisco i dati cosi:

    codice:
    Set db = OpenDatabase(App.Path & "\archivio.mdb")
    Set rs1 = db.OpenRecordset("archivio1")
        With rs1
            .AddNew
            !ragione_sociale = Trim(text2.Text)
            !via = Trim(text6.Text)
            !citta = Trim(text5.Text)
            !cap = Trim(text8.Text)
            !provincia = Trim(text7.Text)
            !partita_iva = Trim(text3.Text)
            !codice_fiscale = Trim(text4.Text)
            !data = Trim(text9.Text)
            !codice = Trim(text10.Text)'questo è i campo che deve essere unico
            !descrizione = Trim(text11.Text)
             .Update
        End With
    cosa dovrei aggiungere?

    x tas no nel database no ho assegnato una chiave primaria


    grazie

  6. #6
    Prova così, non sono sicuro che funzioni... usi la libreria DAO?
    codice:
    Set db = OpenDatabase(App.Path & "\archivio.mdb")
    Set rs1 = db.OpenRecordset("archivio1")
    
    rs1.FindFirst "codice = '" & Trim(text10.Text) & "'"
    
    If rs1.NoMatch Then
        With rs1
            .AddNew
            !ragione_sociale = Trim(text2.Text)
            !via = Trim(text6.Text)
            !citta = Trim(text5.Text)
            !cap = Trim(text8.Text)
            !provincia = Trim(text7.Text)
            !partita_iva = Trim(text3.Text)
            !codice_fiscale = Trim(text4.Text)
            !data = Trim(text9.Text)
            !codice = Trim(text10.Text)'questo è i campo che deve essere unico
            !descrizione = Trim(text11.Text)
             .Update
        End With
    Else
        MsgBox "Codice duplicato."
    End If
    Ciao
    Chi non cerca trova.

  7. #7
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Da quanto mi dici, oltre a non essere una chiave primaria il campo codice è di tipo alfanumerico giusto?
    una soluzione potrebbe essere:
    codice:
    Set rs1 = db.OpenRecordset("SELECT CODICE FROM ARCHIVIO1 WHERE CODICE = '" & Trim(text10.Text) & "';")
    If rs1.RecordCount=0 Then
       rs1.Close
       Set rs1 = db.OpenRecordset("archivio1")
        With rs1
            .AddNew
            !ragione_sociale = Trim(text2.Text)
            !via = Trim(text6.Text)
            !citta = Trim(text5.Text)
            !cap = Trim(text8.Text)
            !provincia = Trim(text7.Text)
            !partita_iva = Trim(text3.Text)
            !codice_fiscale = Trim(text4.Text)
            !data = Trim(text9.Text)
            !codice = Trim(text10.Text)'questo è i campo che deve essere unico
            !descrizione = Trim(text11.Text)
             .Update
        End With
    else
       msgbox "Codice già esistente!"
    End if
    Questa è una delle diverse soluzioni che si possono adottare...
    Jupy

  8. #8
    x tas no non va

    x jupy mi da errore qui:

    codice:
    Set rs1 = db.OpenRecordset("SELECT CODICE FROM ARCHIVIO1 WHERE CODICE = '" & Trim(text10.Text) & "';")
    mi dice variabile oggetto o variabile with non definita

  9. #9
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, ma prima di questa
    codice:
    Set rs1 = db.OpenRecordset("SELECT CODICE FROM ARCHIVIO1 WHERE CODICE = '" & Trim(text10.Text) & "';")
    hai messo questa?
    codice:
    Set db = OpenDatabase(App.Path & "\archivio.mdb")
    Jupy

  10. #10
    hai ragione mea culpa....

    mi sono scordata di aggiungerlo e ti credo che dava errore...comunque funziona a meraviglia ti ringrazio tanto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.