Buongiorno a tutti, da poco ho ripreso in mano visual basic 6.0
Vi espongo subito il tutto
Sto creando un programma per la gestione di una toelettatura.
Ho creato tutti i form , ma mi sono bloccato all'archivio.
Ho un form su i trattamenti dove si mostra l'elenco o si inserisce un nuovo, e queste due mi funzionano
Nella parte dove si mostra l'elenco volevo poter modificare.
Il form è composto da una:
-frame con i dati di scelta tra visualizzare l'elenco o inserimento
-frame con i campi dei dati da inserire e i commandbutton
-listbox a 1 colonna che legge l'archivio dei trattamenti,dat e li riporta all'interno in forma di lista
Quando seleziono un elemento nella lista mi va a cercarlo nella l'archivio e mi riporta gli stessi dati nel frame sottostante, a quel punto vorrei poter modificare o eliminare il record ma non mi funziona
Questo quando mostro l'elenco:
Private Sub optElenco_Click()
'impostazioni grafiche
frmTrattamenti.Height = 6120
frmTrattamenti.Width = 5730
fraInserimento.Visible = True
fraInserimento.Top = 3240
fraInserimento.Left = 120
btnModifica.Visible = True
btnElimina.Visible = True
btnSalva.Visible = False
txtNome.Enabled = False
txtCosto.Enabled = False
optCane.Enabled = False
optGatto.Enabled = False
'Creo / apro archivio
'assegno numero all'archivio
NumTrattamento = FreeFile
'apro archivio
Open Trattamenti For Random As #NumTrattamento Len = Len(RecTrattamento)
'Stampa risultati
Seek #NumTrattamento, 1
lstElenco.Clear
Do While Not EOF(NumTrattamento)
Get #NumTrattamento, , RecTrattamento
lstElenco.AddItem RecTrattamento.Nome
Loop
Dim I As Double
For I = 0 To lstElenco.ListCount - 1
If lstElenco.Selected(I) Then
lstElenco.RemoveItem (I)
End If
Next I
'lstElenco.RemoveItem (lstElenco.ListCount)
'chiudo archivio
Close #NumTrattamento
Modifica = False
End Sub
Questo quando seleziono dall'elenco
Private Sub lstElenco_Click()
'Creo / apro archivio
'assegno numero all'archivio
NumTrattamento = FreeFile
'apro archivio
Open Trattamenti For Random As #NumTrattamento Len = Len(RecTrattamento)
'mi posiziono all'inizio
Seek #NumTrattamento, 1
'Cerco quello che ho selezionato e lo stampo sotto
Dim Trovato As Boolean
Dim ArchivioVuoto As Boolean
Trovato = False
ArchivioVuoto = False
Do While Trovato = False And ArchivioVuoto = False
Get #NumTrattamento, , RecTrattamento
If lstElenco.List(lstElenco.ListIndex) = "" Or lstElenco.List(lstElenco.ListIndex) = "-FINE-" Then
MsgBox ("archivio vuoto oppure seleziona un altro trattamento")
lstElenco.ListIndex = 0
ArchivioVuoto = True
Else
If RecTrattamento.Nome = lstElenco.List(lstElenco.ListIndex) Then
Trovato = True
txtNome.Text = RecTrattamento.Nome
txtCosto.Text = CStr(RecTrattamento.Costo)
If RecTrattamento.Tipologia = True Then optCane.Value = True ' è x gatto
If RecTrattamento.Tipologia = False Then optGatto = True ' è per cane
Modalita = False
Loc (NumTrattamento)
End If
End If
Loop
End Sub
Il tasto salva mi va a salvare all'inserimento ma a modificare al momento che clicco su modifica.
Private Sub btnModifica_Click()
btnSalva.Visible = True
btnSalva.Enabled = True
Modifica = True
btnModifica.Visible = False
btnModifica.Enabled = False
btnElimina.Visible = False
btnElimina.Enabled = False
txtNome.Enabled = True
txtCosto.Enabled = True
optCane.Enabled = True
optGatto.Enabled = True
Modalita = False
'Acquisisco i dati da modificare
NomeDaModificare = txtNome.Text
CostoDaModificare = txtCosto.Text
If optCane.Value = True Then TipoDaModificare = True
If optGatto.Value = True Then TipoDaModificare = False
NumRecord = Loc(NumTrattamento)
End Sub
Private Sub btnSalva_Click()
btnSalva.Visible = False
btnSalva.Enabled = False
' controllo se sono in versione inserimento
'Inserimento o Modifica
'se sono in versione inserimento
If Modalita = True Then
'Creo / apro archivio
'assegno numero all'archivio
NumTrattamento = FreeFile
'apro archivio
Open Trattamenti For Random As #NumTrattamento Len = Len(RecTrattamento)
'Mi posiziono in fondo all'archivio
Seek #NumTrattamento, (LOF(NumTrattamento) / Len(RecTrattamento)) + 1
'acquisisco i dati
If txtNome.Text = "" Or txtCosto.Text = "" Or (optCane.Value = False And optGatto.Value = False) Then
MsgBox ("Errore non hai compilato tutti i campi")
Else
RecTrattamento.Nome = txtNome.Text
RecTrattamento.Costo = Val(txtCosto.Text)
If optCane.Value = True Then RecTrattamento.Tipologia = True
If optGatto.Value = True Then RecTrattamento.Tipologia = False
'Inserico i dati nell'archivio
Put #NumTrattamento, , RecTrattamento
'Azzero le caselle
txtNome.Text = ""
txtCosto.Text = ""
optCane.Value = False
optGatto.Value = False
End If
'chiudo archivio
Close #NumTrattamento
optInserisci.Value = False
optElenco.Value = False
Else ' se sono in versione modifica
If txtNome.Text = "" Or txtCosto.Text = "" Or (optCane.Value = False And optGatto.Value = False) Then
MsgBox ("Errore non hai compilato tutti i campi")
Else
RecTrattamento.Nome = txtNome.Text
RecTrattamento.Costo = Val(txtCosto.Text)
If optCane.Value = True Then RecTrattamento.Tipologia = True
If optGatto.Value = True Then RecTrattamento.Tipologia = False
Put #NumTrattamento, NumTrattamento, RecTrattamento
End If
End If
End Sub
Non capisco cosa sbaglio, invece di modificare il record mi va a inserirne uno nuovo