Ongelmani on, että Access-lomakkeen lasketun kentän luku tarvitaan viedä Exceliin (jossa tarvittava tiedosto voitaisiin avata tietokannan avauksen yhteydessä). Vienti voisi tapahtua aina, kun kentän luku muuttuu. Excelissä luvun avulla lasketaan toinen luku. Tämä saatu luku on vietävä takaisin lomakkeelle sille varattuun kenttään.
Miksi näin? Ongelma liittyy viralliseen tarkastustoimintaan, jossa tutkitun kohteen murtojännitys on muunnettava normikokoisen kappaleen murtojännitykseksi. Muunnos perustuu taulukoituihin arvoihin ja Excelissä tehdään interpolointi oikean normiarvon saamiseksi.
(Olen tehnyt Excel/VBA:lla jo vuosia käytetyn sovelluksen, mutta nyt olisi halu saada sovellus Accessiin, jotta yhtäaikainen käyttö olisi mahdollista ja muutenkin saataisiin mm. raporttien suhteen siistimpi ratkaisu.)
Tee formille vba scripti, joka avaa excel tiedostosi ja siirtää halutun arvosi.
Private Sub Command_Click() Dim objXLApp As Object Dim objXLBook As Object Dim r As Object Dim i As Integer Set objXLApp = CreateObject("Excel.Application") Set objXLBook = objXLApp.Workbooks.Open( _ "c:\ExcelFiles\MyExcel.xls") objXLApp.Application.Visible = True With objXLBook.Sheets("MySheetName") ''If the used range includes empty rows ''it may not suit ''Set r = .UsedRange ''i = r.Rows.Count + 1 i = .Range("A1").End(xlDown).Row + 1 .Cells(i, 1).Value = Me.FirstName & " " & LastName .Cells(i, 2).Value = Me.PhoneNumber .Cells(i, 3).Value = Date End With ''Tidy up Set objXLBook = Nothing Set objXLApp = Nothing End Sub
Homma on pulkassa. Tuosta oli helppo muuttaa toimiva kokonaisuus. Kiitti vaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.