Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-09-2005, 08:57   #1
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
Database!

dunque, vorrei realizzare un programma che possa cercare, aggiungere, modificate, eliminare dati da una tabella di un file mdb. conosco (poco) vb6 e vb.net, ma con entrambi ho degli errori. ho cercato qualche guida ma non ne sono venuto a capo.

inizio in vb6, scrivo un semplice bottone per aggiungere un record:
Quote:
Private Sub cmdAggiungi_Click()
If cmdAggiungi.Caption = "Aggiungi" Then
'Attiva la funzione di aggiunta.
txtnome.text=""
txtcognome.text=""
txtcodice.text=""
Data1.Recordset.AddNew
cmdAggiungi.Caption = "Inserisci i dati"
else
Data1.Recordset.Update
cmdAggiungi.Caption = "Aggiungi"
end if
end sub
è abbastanza semplice, premendo la prima volta viene abilitata l'aggiunta di un nuovo record e vengono svuotate le txt, in cui poi si inseriscono i dati per confermare clickando su cmdAggiungi la seconda volta.

Ultima modifica di Furla : 03-09-2005 alle 12:24.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2005, 10:10   #2
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da Furla
dunque, vorrei realizzare un programma che possa cercare, aggiungere, modificate, eliminare dati da una tabella di un file mdb. conosco (poco) vb6 e vb.net, ma con entrambi ho degli errori. ho cercato qualche guida ma non ne sono venuto a capo.

inizio in vb6, scrivo un semplice bottone per aggiungere un record:
hai volutamente lasciato incompleto il post o ti è scappato l'invio mentre finivi di scrivere?

Ad ogni modo,su visual basic ci sono diversi metodi per la connessione ai database.Uno dei più utilizzati e più comodi è ADO. Questo significa che quando apri il nuovo progetto visual basic,devi includere un riferimento a questa libreria:

Dal menu:

Progetto - Riferimenti:

Microsoft ActiveX Data Object Librerary 2.x (scegli la versione più alta).

Fatto questo la connessione e la manipolazione del db è molto semplice.

Nel Form dovrai dichiarare delle variabili che servono a gestire il db. Es.:

Codice:
Dim myconnection As ADODB.Connection 
Dim myrecordset As ADODB.Recordset
Inizia con l'impostare il progettino e man mano che hai problemi poi li posti.

Se fai una ricerca in questa sezione,trovi numerosi 3d a riguardo e in alcuni ci sono anche link e file di esempio da scaricare.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2005, 10:35   #3
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
la seconda che hai detto, poi mi è saltata la connessione -.-

io ho usato un oggetto data (data1) che al form_load si collega al database di nome XXX nella cartenlla dell'applicazione.

poi ho impostato data1 come datasource di varie textbox, a cascuna ho assegnato ovviamente una "colonna" diversa della tabella del database. il collegamento funziona visto che con l'elemento Data1 è possibile esplorare il database, ma quando premo per la seconda volta il pulsante cmdAggiungi (sub nel primo post) ottengo il seguente errore (non sempre, mi sono accorto che a volte riesco ad aggiungere dei record): "errore di runtime 3426: L'azione è stata eliminata da un oggetto associato", premendo "Debug" viene evidenziata la riga sottolineata nel primo post.

per fare sto programma ci ho messo 5 minuti, se esistono altri metodi più indicati/semplici ben venga!

Ultima modifica di Furla : 04-09-2005 alle 16:09.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2005, 10:38   #4
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da Furla
io ho usato un oggetto data (data1) che al form_load si collega al database di nome XXX nella cartenlla dell'applicazione.

poi ho impostato data1 come datasource di varie textbox, a cascuna ho assegnato ovviamente una "colonna" diversa della tabella del database. il collegamento funziona visto che con l'elemento Data1 è possibile esplorare il database, ma quando premo per la seconda volta il pulsante (sub nel primo post) ottengo il seguente errore (non sempre, mi sono accorto che a volte riesco ad aggiungere dei record): "errore di runtime 3426: L'azione è stata eliminata da un oggetto associato", premendo "Debug" viene evidenziata la riga sottolineata nel primo post.

per fare sto programma ci ho messo 5 minuti, se esistono altri metodi più indicati/semplici ben venga!
Come consiglio,dimentica questo tipo di connessione al database che hai fatto.E' poco efficiente e ti costringe ad essere collegato al database dal momento in cui avvii il programma.

ADO ti permette invece di collegarti al db solo quando necessario,fare le operazioni che desideri e chiudere la connessione(anche con il programma ancora in esecuzione).

Sostanzialmente il modo poi di aggiungere/eliminare/modificare i dati,non cambia.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2005, 20:42   #5
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
ok, thx per il consiglio.

secondo te per usare ADO mi conviene usare vb.net o vb6? in vb.net ci ho provato, ma non mi riconosce la namespace System.Data
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2005, 12:22   #6
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
fammi capire, siamo ancora in vb6 vero?

dunque, se io inizio così:
Quote:
option explicit
Dim myconnection As ADODB.Connection
Dim myrecordset As ADODB.Recordset
la routine di cmdAggiungi diventa:

Quote:
Private Sub cmdAggiungi_Click()
If cmdAggiungi.Caption = "Aggiungi" Then
txtnome.text=""
txtcognome.text=""
txtcodice.text=""
myrecordset.AddNew
cmdAggiungi.Caption = "Inserisci i dati"
else
myRecordset.Update
cmdAggiungi.Caption = "Aggiungi"
end if
end sub
o cambiano anche i comandi?
e come faccio a connettermi al database e a collegare ad ogni campo una text?

Ultima modifica di Furla : 04-09-2005 alle 14:32.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2005, 13:58   #7
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Più che pensare a come il codice varia,dai prima uno sguardo qui per avere un'idea di come funziona ADO:

http://www.redangel.it/programmatori.../ADO/index.asp

E' un pò vecchiotta come guida ma rende benissimo l'idea e c'è anche un tutorial.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2005, 16:38   #8
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
grazie mille, dò un occhiata e provo a tirare giù qualcosa
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 04-09-2005, 16:17   #9
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
mi sembra tutto abbastanza semplice, ma non ho capito bene cosa sono .BOF e .EOF...
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2005, 07:35   #10
aldiablo
Member
 
L'Avatar di aldiablo
 
Iscritto dal: Sep 2005
Città: nel Salento
Messaggi: 30
ciao
praticamente BOF(Begin Of File) quando il cursore di un file è all'inizio del file stesso ed EOF(End Of File) quando il cursore è alla fine del file, di solito si usano per scorrere un file e per essere sicuri che lo scorra tutto.

spero di essere stato chiaro.
aldiablo è offline   Rispondi citando il messaggio o parte di esso
Old 20-09-2005, 21:12   #11
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
dunque, ho realizzato un programma molto simile a quello dell'esempio del tutorial linkato (ho selezionato gli ado 2.5 da "riferimenti"), ma quando provo ad aprire la connection al database mi dice che il formato non è riconosciuto... forse è perché ho usato Access 2000 per realizzare il database che uso io? come posso rendere vb6 compatibile agli mdb fatti con access 2000?

ho scaricato il programma pronto dal tutorial, quello mi funziona senza problemi. se provo ad aprire il database Adotutor.mdb con access 2000 mi dice che il formato deriva da una versione precedente... quindi la mia ipotesi era fondata...


[EDIT]
cercando un po' con google ho trovato questo:

http://forum.html.it/forum/showthrea...hreadid=426307

ma non mi sembra dica di fare qualcosa in più rispetto al tutorial, sebbene i codici non siano del tutto uguali...

Ultima modifica di Furla : 20-09-2005 alle 21:38.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2005, 13:43   #12
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
ah, poi ho bisogno di sapere se è possibile usare 2 recordset (riferiti a 2 tabelle diverse di uno stesso database) con una sola connessione, e se c'è da prendere qualche accorgimento particolare.

grazie
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2005, 16:13   #13
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
lol come provider avevo impostato (come nell'esempio del tutorial) come provider (nella stringa relativa alla connection) jet.oledb 3.51, mi è bastato sostituirlo con jet.oledb 4.0 per risolvere -.-

rimane il secondo dubbio:
Quote:
ho bisogno di sapere se è possibile usare 2 recordset (riferiti a 2 tabelle diverse di uno stesso database) con una sola connessione
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 22-09-2005, 20:46   #14
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
up
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2005, 18:49   #15
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
non riesco a far funzionare la funzione di ricerca.

l'ho lievemente modificata per permettere la scelta del campo di ricerca:
Quote:
.Find Campo & "LIKE '" & StringaDaCercare & "%'"
If .EOF Then 'Se non è stato trovato si torna al record precedente
MsgBox "Record non trovato!", vbExclamation, "Errore ricerca"
.Bookmark = bkmTemporaneo
End If
ogni volta arriva ad EOF, visto che viene visualizzato il msgbox di errore.

ho già provato il seguente codice, eliminando la scelta del campo in cui cercare:
Quote:
.Find "Codice LIKE '" & StringaDaCercare & "%'"
If .EOF Then 'Se non è stato trovato si torna al record precedente
MsgBox "Record non trovato!", vbExclamation, "Errore ricerca"
.Bookmark = bkmTemporaneo
End If
ma nulla da fare.
ovviamente StringaDaCercare contiene il valoregiusto per trovare il record che lo possegga nel campo "codice"

Ultima modifica di Furla : 27-09-2005 alle 15:25.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2005, 15:35   #16
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
ho scoperto che l'errore che ho si verifica soltanto quando la stringa da ricercare nel database è una variabile.

impostando ad esempio come valore da cercare la stringa inserita in una imput box, la ricerca funziona correttamente. ecco il codice:

Quote:
.Find "Codice LIKE '" & inputbox(blabla, blabla) & "%'"
una domanda:
a cosa servono i caratteri %' a fine stringa?
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 07-10-2005, 16:32   #17
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
up
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2005, 15:45   #18
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
non so come, ma ho risolto...

c'è qualche problema se apro due recordset collegati a due tabelle dello stesso database?
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2005, 23:41   #19
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
altro problema: se elimino un record dal recordset, ed era l'ultimo record del recordset, .EOF mi diventa true, mentre .BOF no

quindi se premo il cmd elimina di nuovo, mi da errore.

la cosa strana è che se il database è già vuoto al caricamento del form (durante il quale avviene la connessione con il database) anche .BOF è true e non si generano errori (prima di fare qualsiasi operazione un blocco if mi fa uscire dalla sub se .BOF e .EOF sono true)
Furla è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Al via le offerte Amazon Prime e tutte l...
Prime Day e Amazon Seconda Mano: sconto ...
Cuffie e auricolari in offerta Prime Day...
Prime day: 7 mini PC in super sconto da ...
Scope elettriche e lavapavimenti Prime D...
Smartphone Prime Day: le migliori occasi...
Microsoft 365 Family in offerta Prime Da...
E-bike in offerta Prime Day: HillMiles e...
Prime Day TV: OLED LG B6E 65'' a 1.299€,...
Portatili in offerta Prime Day: i 5 migl...
300 milioni di dollari di server NVIDIA ...
'Io sono Giorgia': la Premier Meloni reg...
Galaxy S27 Ultra con Exynos 2700, Samsun...
Altman: tra OpenAI e Anthropic sulla sic...
Tesla Robotaxi, la notte è ancora...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v