Mi spiego meglio:
Quando avvio il programma se modifico un record già presente nel db va tutto bene,
ma se inserisco un nuovo elemento nel db e poi successivamente modifico un dato già presente non me lo modifica ma mi crea un nuovo record.
ad es. se all'interno ho come record con id 4, 5, 6 e successivamente inserisco un nuovo record con id 7, se, per es. vado a modificare un capo del record con id 5, mi crea un antro record con id 5 e cioè, 4, 5, 5, 6, 7.
Non succede tutto ciò se riavvio il programma e non inserisco nessun nuovo record.
Forse sono un po' confusionario nella spiegazione,
posto il codice di salvataggio riscritto un po meglio con le varie chiamate:
Private Sub cmd_salva_Click()
controllo_salvataggio ' controllo se il dato è già presente
If lbl_verifica.Caption = "nuovo documento" Then
salvanuovo_documento
Else
salvamodifica_documento
End If
End Sub
e queste le varie chiamate:
Public Function controllo_salvataggio()
Stringa = (schermata_volumi.txt_id)
For I = 0 To schermata_volumi.lst_Volumi.ListCount - 1
If Stringa = schermata_volumi.lst_Volumi.List(I) Then
schermata_volumi.lbl_verifica.Caption = "modifica documento"
Exit Function
End If
Next I
schermata_volumi.lbl_verifica.Caption = "nuovo documento"
End Function
Public Sub salvanuovo_documento()
If dbadd = True Then
Call add_registradocumento
Else
If dbedit = True Then
Call edit_documento
End If
End If
End Sub
Public Sub salvamodifica_documento()
errormsg = MsgBox("Documento già presente! sostituire?", vbExclamation + vbYesNo, "Delete Record")
If errormsg = vbYes Then
If dbadd = True Then
Call add_registradocumento
carica_volumi
Else
If dbedit = True Then
Call edit_documento
End If
End If
Else
Exit Sub
End If
End Sub
Public Function add_registradocumento()
rs.AddNew
rs("id") = schermata_volumi.txt_id.Text
rs("autore") = schermata_volumi.txt_autore.Text
rs.Update
End Function
Public Function edit_documento()
rs.Edit
rs("id") = schermata_volumi.txt_id.Text
rs("autore") = schermata_volumi.txt_autore.Text
rs.Update
End Function