PRINCIPALE > LISTA DELLE AREE DI DISCUSSIONE > MS OFFICE > MESSAGGIO

Eseguire una ricerca veloce nell' archivio delle risorse di Visual Basic Italia®: 

Preso dall'archivio...

Premere il pulsante sotto per accedere direttamente ad un articolo o ad un esempio preso in modo casuale dall'archivio.

Ultimo e-book pubblicato:

"INTRODUZIONE AI CSS"

Lo scopo del CSS language è quello di controllare lo stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli di stile.


Prezzo: € 0.0.

Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre domande relative al sito
oppure scrivere ad un responsabile di area.
Responsabile del sito: >Andrea Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini

Messaggio



Problema VB - SQL - Access - Excel
Carlo 03/03/2006
Difficoltà: Principiante

Salve a tutti, ho un problema nello scrivere un codice in VB per eseguire un comando su un database Access. Cercherò di essere chiaro.

Ho un database Access composto da due tabelle: "db" e "ref".
Nella tabella "db" ci sono quattro campi, uno dei quali è "nomereferenza".
La tabella "ref" ha solo due campi, uno dei quali è un contatore, mentre nell'altro, "Referenza", sono contenuti tutti i diversi valori che le referenze possono assumere, nella tabella "db", nel campo "nomereferenza".

Quello che voglio fare è costruire uno script VB che esegua le seguenti operazioni:
1. entra nella tabella "ref" e memorizza i valori del campo "Referenza" per i primi x elementi (contatore =1...x)
2. entra nella tabella "db", e copia (crea un RecordSet) i record che hanno come "nomereferenza" uno degli x valori appena copiati in memoria dalla tabella "ref"
3. salva la tabella così ottenuta (con i soli record selezionati) in un file Excel esterno, diciamo "Results.xls"

Essendo un neofita di VB e ignorante in materia di SQL, ho cercato informazioni in rete e ho costruito il seguente codice (inserito in un modulo, tipo macro, all'interno del file Access), in cui provo manualmente a selezionare le prime quattro referenze:



code:--------------------------------------------------------------------------------Private Sub programmaexport()
Dim oRs As Object
Dim oCnn As Object
Dim oApp As Excel.Application
Dim oWB As Excel.Workbook
Dim i As Integer
Dim strSql As String

Dim uno As String
Dim due As String
Dim tre As String
Dim quattro As String

Set oCnn = Application.CurrentProject.Connection

Set oRs = CreateObject("ADODB.Recordset")

uno = " Select Referenza FROM Ref WHERE IdRef = 1"
due = " Select Referenza FROM Ref WHERE IdRef = 2"
tre = " Select Referenza FROM Ref WHERE IdRef = 3"
quattro = " Select Referenza FROM Ref WHERE IdRef = 4"

strSql = " Select * " _
& " FROM db " _
& " WHERE nomereferenza = uno Or nomereferenza = due Or nomereferenza = tre Or nomereferenza = quattro "

oRs.Open strSql, oCnn, 1

Set oApp = New Excel.Application
oApp.Workbooks.Open (App.Path & "\Results.xls")
oApp.Visible = True
Set oWB = oApp.Workbooks.Add

For i = 0 To oRs.Fields.Count - 1
oWB.Sheets(1).Cells(1, i + 1).Value = oRs.Fields(i).Name
Next
oWB.Sheets(1).Range("1:1").Font.Bold = True
oWB.Sheets(1).Cells(2, 1).CopyFromRecordset oRs
oRs.Close
Set oRs = Nothing
oCnn.Close
Set oCnn = Nothing
Set oWB = Nothing
Set oApp = Nothing

End Sub
--------------------------------------------------------------------------------


Inutile dire che così non funziona. Qualcuno è in grado di aiutarmi?
Mi rendo conto che la spiegazione potrebbe risultare poco comprensibile. Sono a completa disposizione per ulteriori chiarimenti.

Grazie

Carlo