Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-03-2005, 15:16   #1
enrico999
Member
 
L'Avatar di enrico999
 
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
Visual Basic e Database

Allora, ho un database con una sola tabella e voglio fare un'applicazione che mi consenta di far vedere tutti i campi di questa tabella, come devo fare???
enrico999 è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2005, 15:59   #2
Brigante
Senior Member
 
L'Avatar di Brigante
 
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
La richiesta è piuttosto generica, puoi fare in vari modi, dipende da te, uno è questo (a grandi linee):

1) Crei una connessione al database;
2) Crei un recordset;
3) Apri il recordset passandogli la stringa SQL:"SELECT * FROM NOMETABELLA";
4) Prendi una DataGrid, la piazzi su un Form e le passi il recordset tramite la proprietà Recordsource.
5) Avvi l'applicazione ed ecco la tabella che appare.

Se vuoi ulteriori spiegazioni basta chiedere.
__________________
Careful With That Axe
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 09:10   #3
enrico999
Member
 
L'Avatar di enrico999
 
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
come faccio a creare la connessione al database???
enrico999 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 09:43   #4
Brigante
Senior Member
 
L'Avatar di Brigante
 
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
Quote:
Originariamente inviato da enrico999
come faccio a creare la connessione al database???
Il database a cui ti vuoi connettere è fatto con Access, in locale sul tuo PC? Oppure è un database remoto su un server (SQL Server, Oracle, ecc.)?
__________________
Careful With That Axe
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 09:58   #5
enrico999
Member
 
L'Avatar di enrico999
 
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
si, fatto con acces in locale
enrico999 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 11:16   #6
Brigante
Senior Member
 
L'Avatar di Brigante
 
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
Prima di tutto creati un riferimento ad ADO: Menù Progetto -> Riferimenti..., seleziona ActiveX Data Objects 2.x Library, dove x è il secondo numerello della versione (dipende da quale hai installata); poi premi OK e torna al tuo codice. Nella Form piazzaci una bella Datagrid e poi nel codice (anche nella Form_Load per provare) scrivi:

Dim dbConn As ADODB.Connection
Dim rsetMioRecordset As ADODB.Recordset
Dim sSQL as String

Set dbConn=New ADODB.Connection
Set rsetMioRecordset=New ADODB.Recordset

dbConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=MioDatabase.mdb"
sSQL="SELECT * FROM NOME_TABELLA"
rsetMioRecordset.Open sSQL, dbConn
Set Datagrid1.DataSource=rsetMioRecordset

Avvia il tutto e ti appariranno le informazioni nella datagrid. Quando esci ricordati di chiudere il recordset (rsetMioRecordset.Close) e la connessione al DB (dbConn.Close), non farlo subito altrimenti la datagrid non ti visualizza nulla. Alla fine poi distruggi anche il recordset (Set rsetMioRecordset=Nothing) e anche la Form (Set Form1=Nothing).

P.S.: Questo è il modo più semplice per effettuare una connessione ad un database e visualizzare i dati di una tabella, manca una gestione degli errori ed alcuni parametri nel recordset che dipendono dal tipo di accesso che vuoi effettuare. Volendo puoi specificare anche una password per il database, la dove ci fosse.
__________________
Careful With That Axe

Ultima modifica di Brigante : 23-03-2005 alle 11:21.
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 12:13   #7
enrico999
Member
 
L'Avatar di enrico999
 
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
no, io nei riferimenti non ho questa voce:

ActiveX Data Objects 2.x Library


uso visual basic 6 pro.



un'altra cosa, quando parto, devo selezionare come nuovo progetto:

exe standard, progetto dati, o qualcos'altro???
enrico999 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 12:18   #8
Brigante
Senior Member
 
L'Avatar di Brigante
 
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
Quote:
Originariamente inviato da enrico999
no, io nei riferimenti non ho questa voce:

ActiveX Data Objects 2.x Library


uso visual basic 6 pro.



un'altra cosa, quando parto, devo selezionare come nuovo progetto:

exe standard, progetto dati, o qualcos'altro???
...Ce l'hai, ce l'hai, si chiama Microsoft ActiveX Data Objects 2.x Library; ovviamente la x è sostituita dal numerello della versione. Per iniziare devi creare un progetto exe standard.
__________________
Careful With That Axe
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 12:50   #9
enrico999
Member
 
L'Avatar di enrico999
 
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
ok, per quanto riguarda Microsoft ActiveX Data Objects 2.x Library tutto OK.

scusa se ti disturbo ancora, ma è la prima volta che uso visual studio, comunque ho un'altra domanda:

scegliendo exe standar nella barra a sinistra non mi compare datagrid, e quindi non so come inserirla....

(per questo prima avevo chiesto se dovevo fare un exe standar o un nuovo porogetto)
enrico999 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 12:59   #10
Brigante
Senior Member
 
L'Avatar di Brigante
 
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
Quote:
Originariamente inviato da enrico999
ok, per quanto riguarda Microsoft ActiveX Data Objects 2.x Library tutto OK.

scusa se ti disturbo ancora, ma è la prima volta che uso visual studio, comunque ho un'altra domanda:

scegliendo exe standar nella barra a sinistra non mi compare datagrid, e quindi non so come inserirla....

(per questo prima avevo chiesto se dovevo fare un exe standar o un nuovo porogetto)
Clicca con il tasto destro del mouse sulla casella degli strumenti (quella dove stanno tutti i controlli), seleziona Componenti... e ti si apre un finestra con un elenco di roba, seleziona Microsoft Datagrid Control, clicca su OK ed ecco la datagrid.

P.S.: Scusami, ma se non conosci l'ambiente di Visual Studio, ti conviene iniziare con delle cose molto semplici, e non con un'applicazione per gestire un database.
__________________
Careful With That Axe
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 13:07   #11
enrico999
Member
 
L'Avatar di enrico999
 
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
purtroppo devo farlo per forza....


comunque in questo codice:

Dim dbConn As ADODB.Connection
Dim rsetMioRecordset As ADODB.Recordset
Dim sSQL as String

Set dbConn=New ADODB.Connection
Set rsetMioRecordset=New ADODB.Recordset

dbConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=MioDatabase.mdb"
sSQL="SELECT * FROM NOME_TABELLA"
rsetMioRecordset.Open sSQL, dbConn
Set Datagrid1.DataSource=rsetMioRecordset


cosa devo mettere al posto di MioRecordset???

(Al mosto di MioDatabase ho messo il nome del mio database e al posto di NOME_TABELLA ho messo il nome della tabella che ho nel database.)
enrico999 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 13:40   #12
Brigante
Senior Member
 
L'Avatar di Brigante
 
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
Quote:
Originariamente inviato da enrico999
purtroppo devo farlo per forza....


comunque in questo codice:

Dim dbConn As ADODB.Connection
Dim rsetMioRecordset As ADODB.Recordset
Dim sSQL as String

Set dbConn=New ADODB.Connection
Set rsetMioRecordset=New ADODB.Recordset

dbConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=MioDatabase.mdb"
sSQL="SELECT * FROM NOME_TABELLA"
rsetMioRecordset.Open sSQL, dbConn
Set Datagrid1.DataSource=rsetMioRecordset


cosa devo mettere al posto di MioRecordset???

(Al mosto di MioDatabase ho messo il nome del mio database e al posto di NOME_TABELLA ho messo il nome della tabella che ho nel database.)
Il recordset puoi chiamarlo come vuoi, di solito lo si chiama con un mome che identifica più o meno l'azione che compie, per esempio per leggere una tabella di utenti si può creare un recordset chiamato rsetUtenti; la parola rset viene di solito messa per indicare che appunto ci si riferisce ad un recordset, ma potresti anche scrivere Dim Pluto as ADODB.Recordset.
Ricordati, inoltre, che il nome del database deve essere compreso di percorso, cioè, per esempio: C:\Progetto\Database\NomeDatabase.mdb
__________________
Careful With That Axe
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 14:10   #13
enrico999
Member
 
L'Avatar di enrico999
 
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
ok, altra domandina stupida (non per me).

come faccio a creare un recordset???
enrico999 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 14:48   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E' già stato creato nel codice sopra...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 17:09   #15
enrico999
Member
 
L'Avatar di enrico999
 
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
allora scusate, comunque non ho capito.

Quando scelgo file exe, devo scrivere il codice della connessione al database.

(potete dirmi solo questo codice???)


poi devo creare un recordset (pensavo che si facesse più o meno come con dreamweaver, non so se lo avete già usato, invece a quanto ho capito anche qua scrivo il codice a mano)
se anche per il recordset pèotete scrivermi solo il pezzo di codice per il recordset...


così almeno capisco:
questo pezzo serve per connetermi al database
e quest'altro è il recordset
enrico999 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2005, 22:51   #16
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Ma anche per il recordset il codice lo hanno già postato

facendo un sunto:

clicca sul form col tasto dx e scegli visualizza codice in modo da aprirti l'editor e scrivi:

Codice:
'questo è un commento, come vedi i commenti si indicano con l'apice singolo e sono molto importanti

Option Explicit 'con questa dichiarazione intendiamo che le variabili che dichiareremo sono visibili a tutti gli oggetti del form

Dim db As ADODB.Connection 'dove db è un nome arbitrario ed è il database

Dim rs  As ADODB.Recordset 'dove rs è un nome arbitrario ed è il recordset

Dim sSQL As String 'una comoda variabile di tipo stringa


Private Sub Form_Load() 'cioè, ogni volta che aprirò il form

Set db = New ADODB.Connection 
Set rs = New ADODB.Recordset

'instauro la connessione con il database

db.ConnectionString "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & App.Path & "\tuodatabase.mdb"

db.Open 'apro il database

sSQL = ""  'in modo che ogni volta che apro il form ho il buffer vuoto
sSQL = sSQL "SELECT * FROM nome_tabella_tuo_database" & VbCrlf
sSQL = sSQL & "ORDER BY Nome_Campo" ' ordino i dati in base a qualcosa

Set rs = cn.Execute(sSQL) 'eseguo la SQL che mi restituirà il recordset  


Set Datagrid1.DataSource = rs 'visualizzo i dati sulla griglia

End Sub ' Fine Funzione Form_Load()
E' importante anche che quando chiudi il Form, o esci dal programma, o se il programma crasha, che prevedi una funzione che sganci l'applicazione dal database:

Codice:
Private Sub Form_Unload(Cancel As Integer)
'sgancio il database alla chiusura del form
   
 If cn.State = adStateOpen Then 'se il db è aperto
      
        If rs.State = adStateOpen Then 'se ho dei recordset aperti
      
           rs.Close 'chiudo il recordset
         
        End If 
      
      cn.Close 'chiudo la connessione al database
    
   End If 
    
    Set cn = Nothing 'nessuna connessione attiva
    Set rs = Nothing 'nessun recordset attivo
    
 End Sub
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2005, 20:31   #17
Brigante
Senior Member
 
L'Avatar di Brigante
 
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
Mi permetto di fare alcune precisazioni:
Non serve scrivere sSQL="" perchè la Form_Load viene eseguita una sola volta all'avvio, quindi la variabile viene dichiarata ed è automaticamente vuota, non si tratta di un buffer.
Per quanto riguarda Option Explicit, ho letto il commento a fianco, ma non ho capito se il commento è riferito alle variabili sotto di lui o ad Option Explicit, se fosse riferito a quest'ultimo è sbagliato, perchè invece serve per avere una dichiarazione esplicita ed obbligatoria delle variabili che verranno usate, questo per evitare di scrivere una variabile sbagliata o non dichiarata, infatti mettendo Option Explicit e scrivendo una variabile non dichiarata si avrà un errore in fase di esecuzione.
__________________
Careful With That Axe
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2005, 08:43   #18
enrico999
Member
 
L'Avatar di enrico999
 
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
ho provato con il codice che mi ha detto, ma subito alla prima riga mi da un errore:

Dim Agenda As ADODB.Connection 'dove db è un nome arbitrario ed è il database


L'errore è il seguente:

Errore di compilazione: Tipo definito dall'utente non definito



Possibile che nessuno mi dica chiaramete come si fa la connessione ad un database???
enrico999 è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2005, 08:48   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Te lo dice perchè non hai fatto questa operazione:

"Prima di tutto creati un riferimento ad ADO: Menù Progetto -> Riferimenti..., seleziona ActiveX Data Objects 2.x Library, dove x è il secondo numerello della versione (dipende da quale hai installata);"
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-03-2005, 09:07   #20
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da Brigante
Mi permetto di fare alcune precisazioni:
Non serve scrivere sSQL="" perchè la Form_Load viene eseguita una sola volta all'avvio, quindi la variabile viene dichiarata ed è automaticamente vuota, non si tratta di un buffer.
E' giusto, hai ragione, è dovuto al fatto che in genere io per i recordset associo tutto a comodi pulsanti.

Quote:
Per quanto riguarda Option Explicit, ho letto il commento a fianco, ma non ho capito se il commento è riferito alle variabili sotto di lui ......-cut-
Rileggendo il mio post, in effetti non era chiaro dalla posizione del commento, ma non intendevo assolutamente il secondo caso.

Grazie cmq, per le precisazioni

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
Iliad: si consolida la partnership tecno...
Il SoC a 2 nm di Samsung non sfigura nel...
Prezzo shock per i Galaxy Buds FE + nuov...
Il nuovo SoC di Qualcomm vuole stupire: ...
Offerta lampo per pulire l'auto: aspirap...
I robotaxi di Amazon entrano in azione: ...
ECOVACS DEEBOT T50 PRO OMNI Gen2 domina ...
iPhone 17 Pro su Amazon: tutti i colori,...
Disney Plus da 2,99 euro al mese per 3 m...
Nuovo test di accensione dei motori per ...
Novità dalle analisi dell'asteroi...
La PS6 sarà più potente del previsto: ec...
Sony svela Xperia 10 VII: è il nu...
Amazon Weekend da urlo: iPhone 16 a prez...
Spotify diffida ReVanced: chiesta la rim...
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: 18:31.


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