Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-09-2005, 09: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 13:24.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2005, 11: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, 11: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 17:09.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2005, 11: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, 21: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, 13: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 15:32.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2005, 14: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, 17: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, 17: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, 08: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, 22: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 22:38.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2005, 14: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, 17: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, 21: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, 19: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 16:25.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2005, 16: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, 17: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, 16: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 28-10-2005, 00: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


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
Reddit punterà sull'AI per miglio...
Samsung ha obiettivi molto ambiziosi per...
I produttori non faranno sconti sulle me...
Ubisoft potrebbe cedere pezzi se il pian...
Qualcomm potrebbe utilizzare una tecnolo...
Starfield per Nintendo Switch 2 potrebbe...
Un MacBook Pro a -300€, i MacBook Air M4...
Amazon abbassa i prezzi sugli iPhone: sc...
Amazon, ancora sconti sugli smartphone A...
iPhone Air 2 'riciclerà' alcuni c...
Offerta Amazon da non perdere: lo speake...
Nioh 3 debutta alla grande su Steam: pri...
Al centro della Via Lattea ci potrebbe e...
Elon Musk ora guarda alla Luna: SpaceX p...
La Cina ha lanciato nuovamente lo spazio...
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: 21:50.


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