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 SubHomma on pulkassa. Tuosta oli helppo muuttaa toimiva kokonaisuus. Kiitti vaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.