30/07/09 22:10
Swanny
Ri-salve Dopo aver risolto con buoni risultati il mio topic precedente, rieccomi qui con un nuovo quesito. Come detto sto programmando un programmino in VB6 dove archiviare la miriade di libri/fumetti che possiedo. Al programma vorrei aggiungere la possibilità di visualizzare nella form la scansione della copertina (per lo + per i fumetti) che cambi per ogni nuovo record, salvandola nel database. Girando sul web ho letto che è sconsigliato fare questo tipo di salvataggio in quanto gonfia enormemente la dimensione del database, ma al momento non mi importa molto visto che lo spazio per fortuna non mi manca. Oppure invece del salvataggio "fisico" dell'immagine nel database, salvare SOLO il percorso dove risiede l'immagine nel database, così da richiamarla con + facilità ad ogni record.
Ho fatto questa prova creando un bottone (DATASOURCE data1; DATAFIELD copertina), una casella di testo (DATASOURCE data1; DATAFIELD copertina) e un campo image:
Con questo apro l'immagine nel campo image e ne visualizzo il percorso nella textbox
Private Sub Cmdcaricaimmagine_Click()
CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
Text12.text =CommonDialog1.FileName
End Sub
Al click sul campo image compare l'immagine da me selezionata caricando il percorso dalla textbox
Private Sub Image1_Click()
If Dir(Text12.Text) <> "" then
Image2.Picture = LoadPicture(Text12.Text)
End If
End Sub
Ora per salvare il percorso dell'immagine nel database come faccio? Pensavo che il comando Data1.Recordset.AddNew salvasse anche questo campo. Da notare che ho dovuto riselezionare la nel campo DATASOURCE di data1 il percorso del database altrimenti non potevo specificare i campi nel pulsante sopra citato che nel topic prima avevo assegnato al form load:
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "\Listafilm.mdb"
End Sub
Per essere + chiaro posto il codice intero:
Risolto questo intoppo posto anche il problema che ho relativo al salvataggio del testo di una textbox in un file di testo.
Ho fatto questa prova creando un bottone (DATASOURCE data1; DATAFIELD copertina), una casella di testo (DATASOURCE data1; DATAFIELD copertina) e un campo image:
Con questo apro l'immagine nel campo image e ne visualizzo il percorso nella textbox
Private Sub Cmdcaricaimmagine_Click()
CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
Text12.text =CommonDialog1.FileName
End Sub
Al click sul campo image compare l'immagine da me selezionata caricando il percorso dalla textbox
Private Sub Image1_Click()
If Dir(Text12.Text) <> "" then
Image2.Picture = LoadPicture(Text12.Text)
End If
End Sub
Ora per salvare il percorso dell'immagine nel database come faccio? Pensavo che il comando Data1.Recordset.AddNew salvasse anche questo campo. Da notare che ho dovuto riselezionare la nel campo DATASOURCE di data1 il percorso del database altrimenti non potevo specificare i campi nel pulsante sopra citato che nel topic prima avevo assegnato al form load:
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "\Listafilm.mdb"
End Sub
Per essere + chiaro posto il codice intero:
Option Explicit Dim criterioricerca As String Private Sub cmdaggiorna_Click() 'Ricollega il recordset alla tabella aggiornando i dati Data1.Refresh End Sub Private Sub cmdaggiungi_Click() Data1.Recordset.AddNew End Sub Private Sub cmdcarica_Click() Data1.UpdateRecord Data1.Recordset.Bookmark = Data1.Recordset.LastModified End Sub Private Sub cmdelimina_Click() Dim Opzione Opzione = MsgBox("Vuoi eliminare la scheda di questo libro?", vbCritical + vbYesNo, "Sei sicuro?") If Opzione = 6 Then Data1.Recordset.Delete Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Data1.Recordset.MoveLast End If End If End Sub Private Sub cmdesci_Click() Unload Me End Sub Private Sub cmdricerca_Click() Dim segnaposto As String Dim ricercaparola As String segnaposto = Data1.Recordset.Bookmark ricercaparola = InputBox("Quale libro vuoi cercare?") If ricercaparola = "" Then Exit Sub criterioricerca = "titolo = '" + ricercaparola + "'" Data1.Recordset.FindFirst criterioricerca If Data1.Recordset.NoMatch Then MsgBox ("Il titolo '" + ricercaparola + "' non esiste nel database.") End If End Sub Private Sub Data1_Reposition() Frame2.Caption = "Scheda " + Str((Data1.Recordset.AbsolutePosition) + 1) + " /" + Str(Data1.Recordset.RecordCount) End Sub Private Sub Form_Load() Data1.DatabaseName = App.Path & "\Listalibri.mdb" End Sub Private Sub Cmdcaricaimmagine_Click() CommonDialog1.ShowOpen Image1.Picture = LoadPicture(CommonDialog1.FileName) Text12.text =CommonDialog1.FileName End Sub Private Sub Image1_Click() if dir(Text12.Text) <> "" then Image2.Picture = LoadPicture(Text12.Text) End if End Sub
Risolto questo intoppo posto anche il problema che ho relativo al salvataggio del testo di una textbox in un file di testo.
aaa