Napíšu jen zjednodušenou verzi předpokládající, že se jedná o textové pole. (Datové a číselné musí být v dotazu řešeny jinak).
1) V referencích projektu je třeba přidat referenci na Microsoft ActiveX Data Objetcts 2.8 Library (použito v mém případě).
2) V databázi je potřeba mít nějaký jedinečný identifikátor (ID).
3) V tvém zobrazovacím dotazu budu předpokládat, že ID bude zobrazeno v prvním sloupci Excelu.
4) Kód pro úpravu hodnoty na základě změně excelové buňky (neřeší žádné ověřování apod.)
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim strConn, field As String
Dim db_id As Single
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\data.mdb;User Id=admin;Password=;"
conn.Open strConn
db_id = Cells(Target.Row, 1)
field = Cells(1, Target.Column)
conn.Execute "UPDATE TABULKA SET " & field & "='" & Target.Value & "' WHERE ID = " & db_id
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
Vložení nového bude obdobné s tím rozdílem že proběhne ověření je-li v prvním sloupci ID, pokud bude buňka prázdná, tak by se předpokládalo že jde o nový záznam a SQL příkaz změníš na Insert Into TABULKA (Seznam polí) Select Seznam hodnot.
M@citovat