[access] Excell gegevens module

Pagina: 1
Acties:

  • midget
  • Registratie: Maart 2001
  • Laatst online: 10-07 11:00
Ik ben nu geruime tijd bezig met het koppelen van een excell blad met data aan een access database.

Waar ik naar toe wil:
Database wordt geopenend en lees zijn data uit het excell blad.
De gebruiker kan dan de data uitlezen en eventueel bewerken.
Bij het afsluiten worden de wijzigingen weer opgeslagen in het excell blad.

IS dit uberhoud wel mogelijk.
Op google vind ik veel gerelateerde info, maar niks met betrekking tot het probleem.

Als ik handmatig via bestand / importeren / -> excell doe wordt het op de juiste manier geimporteerd.
Misschien is die actie te automatiseren?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Als je een nieuwe tabel aanmaakt, kan je kiezen o.a. kiezen voor: import table en link table. Bij beide opties kan je vervolgens een excel file selecteren.

Heb je hier misschien wat aan?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 18:48

Schonhose

Retro Icoon

Ik heb wel een code liggen welke een excelspreadsheet importeert in Access.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub ImportDataIntoTempAccess(Filename As String)

Dim TableSet As Recordset
Dim QuestionImport As Integer
Dim sql As String
Dim myqd As QueryDef

Set TableSet = CurrentDb.OpenRecordset("TableNames") 'Table containing tablenames, sheetnames and sheet ranges
  
QuestionImport = MsgBox _
    (("You're about to add data into the database" & (Chr(10)) & (Chr(10)) & "Are you sure?"), _
    vbQuestion & vbYesNo, _
    "Question...")
    

    
If QuestionImport = vbYes Then 'the user selected yes
'all files will be loaded into tmp_ tables.
    While Not TableSet.EOF
      sql = "DELETE * FROM [" &  TableSet!tablename & "];" 'clear all tmp tables
      Set myqd = CurrentDb.CreateQueryDef("", sql)
      myqd.Execute
      myqd.Close
      DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel97, TableSet!tablename, Filename, True, TableSet!XLSheet & TableSet!range
      TableSet.MoveNext
    Wend
    ' All data imported in tmp-tables
    MsgBox ("First step succesfully finished..."), vbInformation, "For Your Information..."
    
Else
    Exit Sub
End If
End Sub


De TableSet is een tabel waarin alle namen van de tabellen staan waarin hij het moet gooien.

Structuur:

TableName: Naam aan te maken tabel (eerst in temp. vorm)
XlSheet: Naam van de worksheet
Range: de te importeren range.

Dus voor jou:
TableSet!tablename --> naam van de tabel
Filename --> naam van de workbook (met path)
TableSet!XLSheet --> naam van de te importeren sheet
TableSet!range --> range welke geimporteerd moet worden.

Let op! Hier staat wel een stukje code in welke de TableSet!tablename eerst helemaal leeg maakt (dus alle data verwijderd.)

Visual Basic:
1
2
3
4
      sql = "DELETE * FROM [" &  TableSet!tablename & "];" 'clear all tmp tables
      Set myqd = CurrentDb.CreateQueryDef("", sql)
      myqd.Execute
      myqd.Close


Dat stukje dus!

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005