|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
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???
|
![]() |
![]() |
![]() |
#2 |
Senior Member
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 |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
|
come faccio a creare la connessione al database???
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
Quote:
__________________
Careful With That Axe |
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
|
si, fatto con acces in locale
|
![]() |
![]() |
![]() |
#6 |
Senior Member
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. |
![]() |
![]() |
![]() |
#7 |
Member
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??? |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
Quote:
![]()
__________________
Careful With That Axe |
|
![]() |
![]() |
![]() |
#9 |
Member
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) |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
Quote:
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 |
|
![]() |
![]() |
![]() |
#11 |
Member
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.) |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
Quote:
Ricordati, inoltre, che il nome del database deve essere compreso di percorso, cioè, per esempio: C:\Progetto\Database\NomeDatabase.mdb ![]()
__________________
Careful With That Axe |
|
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Jan 2004
Città: Verolavecchia
Messaggi: 198
|
ok, altra domandina stupida (non per me).
come faccio a creare un recordset??? |
![]() |
![]() |
![]() |
#14 |
Senior Member
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...
|
![]() |
![]() |
![]() |
#15 |
Member
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 |
![]() |
![]() |
![]() |
#16 |
Senior Member
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() 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 ![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
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 |
![]() |
![]() |
![]() |
#18 |
Member
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??? |
![]() |
![]() |
![]() |
#19 |
Senior Member
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);" |
![]() |
![]() |
![]() |
#20 | ||
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]() Quote:
Grazie cmq, per le precisazioni ![]() RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:31.