Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Access-lomakkeen ja Excel-taulukon viestintä

avevu [08.11.2012 09:14:11]

#

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.)

groovyb [08.11.2012 09:36:48]

#

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

avevu [08.11.2012 20:21:14]

#

Homma on pulkassa. Tuosta oli helppo muuttaa toimiva kokonaisuus. Kiitti vaan.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta