Newsgroup: it.comp.lang.visual-basic
Titolo: Query SQL per l'inserimento dati su un foglio Excel

Ciao a tutti
per aggiornare un dato in una tabella ACCESS utilizzo
UPDATE nometabella SET nomecampoA = "PROVA" WHERE nomecampoB=184
In Excel come devo fare visto che non ho un nome tabella? ma bensi una 
tabella formata dalle celle A9:S200 contenute nel foglio "Offerta"?
Grazie in anticipo a tutti. 

pincopalla ha scritto:

SQL non è supportato da excel, quindi devi fare una procedura in VB che 
controlla che la colonna interessata sia = a 184 e in tala caso 
impostare la colonna nomecampoA = prova...tutto qui...!
saluti MVB

 saluti MVB
Certo che SQL è supportato da VB!
ovviamente da VB.
Ad es. il seguente codice grazie ad una query SQL mi ricava il valore di una 
determinata colonna di Excel.
Il problema sta nel fatto che vorrei utilizzare un query SQL che utilizza 
UPDATE per aggiornare il valore di una cella.
Function LeggiPrezzo(NomeCampoRicerca As String, NomeFoglio As String, 
PrimaCella As String, filtro1 As String, PercorsoFile As String, NomeFile As 
String)
    Dim strCnn As String
    Dim strQry As String
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim fld As ADODB.Field
    Dim ExclTemp As Object
    Dim Wbk As Object
    Dim Wsht As Object
    Dim CelleTabellaListino As String
    CelleTabellaListino = "A9:Z1000"
    'Inizio definizione query di ricerca (come Access!!)
    strQry = "SELECT [" & NomeCampoRicerca & "] FROM [" & NomeFoglio & "$" & 
CelleTabellaListino & "]"
    strQry = strQry & " WHERE " & filtro1
    'Fine definizione query di ricerca (come Access!!)
    'Inizio collegamento a fonte dati
    Set cnn = New ADODB.Connection
    Set rst = New ADODB.Recordset
    strCnn = ";Driver={Microsoft Excel Driver (*.xls)}" _
    & ";DBQ=" & PercorsoFile & NomeFile _
    & ";DefaultDir=" & Left(PercorsoFile, Len(PercorsoFile) - 1) _
    & ";DriverId=790" _
    & ";MaxBufferSize=2048" _
    & ";PageTimeout=5" _
    & "IMEX=1" _
    & ";"
    cnn.Open strCnn
    rst.Open strQry, cnn
    'Fine collegamento a fonte dati
    'Inizio ricerca valore nel campo specificato nella query
    LeggiPrezzo = rst.Fields(NomeCampoRicerca)
    'Fine ricerca valore nel campo specificato nella query
End Function 

pincopalla ha scritto:

mi giunge del tutto nuovo, confesso la mia ingoranza...ma non capisco 
come possa funzionare sql su excel non essendo un DB relazionale...
ma ne sei proprio sicuro??
saluti

 ma ne sei proprio sicuro??
se fai una query su un mdb con una sola tabella, e quindi con poco di 
relazionale, in linea di massima deve funzionare:
update unicatabella set ciccio='pippo'
relazionale e' il dbms. il linguaggio puo' usare le relazioni. ma per far 
prima la realta' a volte ti fa gestire in una sola tabella cose che ne 
vorrebbero almeno 3. e sql mica si arrabbia. si arrabbia se sbagli a usarlo:
update mymdb set ciccio='pippo'
che pero' e' tutt'altra cosa.
quello che mi sono sempre chiesto, ma non ci ho mai lavorato, e' se la 
tipica cartella excel con 3 fogli di lavoro, se i fogli sono ben strutturati 
in tabelle puo' essere in qualche modo considerata un rdbms, per quanto 
senza vincoli relazionali e di tipo.
ciao, a.