Avatar billede ra1101 Nybegynder
28. april 2004 - 09:36 Der er 36 kommentarer og
1 løsning

Knap der starter import af tabel

Hej alle i kloge eksperter

Er der nogen der kan give mig en kode der kan bruges til at lave en knap på en formular, som starter den indbyggede "import af en tabel". Den skal bar starte den sædvanlige guide som Access kører hvis man trykker på NY og IMPORTER TABEL.

Jeg kører Access 2002.

Rene' Andersen
Avatar billede ferdinand.k Mester
28. april 2004 - 09:51 #1
Avatar billede ra1101 Nybegynder
28. april 2004 - 09:56 #2
Øhhhhhhh, jeg kan ikke lige se den funktion beskrevet i det sp. du henviser til her!?!?!?!?
Avatar billede jensen363 Forsker
28. april 2004 - 10:58 #3
Er det ikke den samme tabel / importspecifikation du benytter ved hver import ?

I givet fald, kan du automatisere importen ved :
  ImportFolder = DLookup("[ImportFil]", "tblFilplacering", "[JobID] = 2")
  DoCmd.TransferText acImportDelim, "", "tblNavn", ImportFolder & "Datakilde", False, ""
Avatar billede jensen363 Forsker
28. april 2004 - 11:07 #4
Avatar billede ra1101 Nybegynder
28. april 2004 - 11:51 #5
Nej det er mange forskellige Excelfiler som brugeren selv skal kunne vælge at importere. Jeg kunne naturligvis vise brugeren at han/hun kunne trykke på NY og Importer tabel, men jeg ville jo gerne gøre det "pænt" så det hele kunne ligge på en formular!!!!!!
Avatar billede jensen363 Forsker
28. april 2004 - 11:58 #6
Altså import af en vilkårlig excelfil, uden hensyntagen til filens indhold, og data´s videre benyttelse !!!!!

Formålet kan jeg ikke rigtig se ... sorry ...
Avatar billede ra1101 Nybegynder
28. april 2004 - 12:15 #7
Formålet ligger i den videre bearbejdelse, som jeg HAR fået til at virke, hvor brugeren har knapper til at udføre det som han/hun har behov for.
Det er naturligvis ikke helt vilkårlige Excelfiler, de er identiske i format, men indholdet er forskelligt, og det er det indhold de skal have bearbejdet, og som jeg altså HAR lavet knapper/funktioner til.

Nu mangler jeg så bare en knap, som de kan trykke på, der starter guiden Importer tabel, så jeg kan lægge det hele på én formular!
Avatar billede jensen363 Forsker
28. april 2004 - 12:22 #8
Hvordan er regnearkene forskellige ???

Er det udelukkende rækker som varierer, og ikke antal kolonner ?
Avatar billede ra1101 Nybegynder
28. april 2004 - 12:28 #9
Jeg tror at vi snakker forbi hinanden her, for jeg har ikke behov for hjælp til import af dataene, og ej heller til at behandle dem videre. Det HAR jeg fundet ud af at lave.
Jeg er heller ikke interesseret i en automatiseret importrutine.

Jeg er KUN interesseret en knap der kan STARTE guiden "Importer tabel" i Access!!!

Jeg VED godt at knappen ligger i Access databasevindue, men det er jo netop det vindue jeg gerne vil undgå at skulle ind på. Jeg vil gerne kunne styre det hele fra en formular.
Avatar billede jensen363 Forsker
28. april 2004 - 12:40 #10
Den eneste mulighed ( mig bekendt ) er, at indarbejde knappen/guiden i menulinien, ikke på formularen ... sorry ...
Avatar billede mugs Novice
28. april 2004 - 12:50 #11
Denne importerer et valgfrit Excel-ark:

Dim a As String
a = InputBox(Prompt:="Indtast stien til Excel-filen", Title:="Importer Excel", Default:="C:\")
DoCmd.TransferSpreadsheet acImport, 0, "Import1", a, True, ""

Du indtaster stien i en inputbox. Jerg hasr i eksemplet angivet drev C som Default, men det kan du jo bare ændre.
Avatar billede jensen363 Forsker
28. april 2004 - 12:52 #12
Mugs > det er vist ikke lige det som der efterspørges ;)
Avatar billede mugs Novice
28. april 2004 - 13:03 #13
jensen363 > Så kan svaret blot afvises. Jeg har ikke nærlæst Jeres kommentarer nærmere. Er lige kommet hjem efter en 12-timers nattevagt, så det eneste det drejer sig om, er at komme på ryggen. Godnat :o)
Avatar billede jensen363 Forsker
28. april 2004 - 13:05 #14
Sov godt ;)
Avatar billede ra1101 Nybegynder
28. april 2004 - 13:07 #15
Så rykker vi mugs, JO det er lige præcis det jeg efterspørger. Blot ville jeg hellere have "OpenFile dialogboksen" istedet for at brugeren skal indtaste en sti.
Avatar billede jensen363 Forsker
28. april 2004 - 13:14 #16
Så har du squ ikke formuleret dig særligt tydeligt ... hvis det er OpenFile du ønskede ... du henveser til, at det er import Guiden du ville aktivere ...
Avatar billede ra1101 Nybegynder
28. april 2004 - 13:23 #17
jensen363> Jeg gider ikke starte en diskussion, men hvad sker der hvis du trykker på NY og dernæst på Importer tabel ?????  Hos mig kommer OpenFiledialogboksen op!
Avatar billede jensen363 Forsker
28. april 2004 - 13:30 #18
Private Sub cmdBrowse_Click()
  Dim dlg As New CommonDialog
  Dim StrFilter As String
  StrFilter = dlg.AddFilterItem(StrFilter, "Excel-filer (*.xls)", "*.xls")
  StrFilter = dlg.AddFilterItem(StrFilter, "Alle filer (*.*)", "*.*")
  dlg.DialogTitle = "Find fil"
  dlg.filter = StrFilter
  dlg.ShowOpen
  Me!Sti = dlg.Filename

  DoCmd.TransferText acImportDelim, "", "", [Sti], False, ""

End Sub
Avatar billede ra1101 Nybegynder
28. april 2004 - 13:35 #19
jensen363> Tak, jeg får følgende fejl når jeg trykker på knappen:
"Compile Error: User-defined type not defined"
Avatar billede mugs Novice
28. april 2004 - 13:39 #20
Jeg kunne ikke sove. Fejlen kmmer typisk når du mangler en reference. I dette tilfælde til Ecel.

Åbn din formular i designvisning og gå ind i et kodemodul  Tools > References og kontroller at der er sat et checkmærke ved dit Excel bibliotek.
Avatar billede ra1101 Nybegynder
28. april 2004 - 13:46 #21
mugs> Det var der ikke, men det har ikke hjulpet noget. Får stadig samme fejl. HAR prøvet lukke Access helt ned.
Avatar billede mugs Novice
28. april 2004 - 13:55 #22
Jeg er ved at være så træt, at det der med at tænke ikke er lige godt. Men prøv evt. at kontrollere din kode for stavefejl. Ikke at jeg tror det hjælper, men det er et forsøg værd, hvis du ikke har andre forslag.

Prøver at sove lildt igen. Beklager ikke at være til mere hjælp lige nu.
Avatar billede proaccess Nybegynder
28. april 2004 - 14:12 #23
Du kan prøve at kontrollere referencen til COMDLG32.OCX
Avatar billede ra1101 Nybegynder
28. april 2004 - 14:16 #24
proaccess> Var der ikke, men sat, og lige lidt hjalp det.
Avatar billede jensen363 Forsker
28. april 2004 - 14:27 #25
Sorry ... modulerne mangler ... download hele programmet her :

http://www.makeiteasy.dk/eksempler/OpenFileDialog.zip
Avatar billede terry Ekspert
28. april 2004 - 14:45 #26
If I remember correctly (not often) then COMDLG32.OCX is NOT a standard Access component. So you will need to use an API call to open it.

Yopu can download an example from Thomas examples http://www.makeiteasy.dk/eksempler/OpenFileDialog.zip
Avatar billede terry Ekspert
28. april 2004 - 14:46 #27
:o) I'm sleeping here, didnt see your last comment there jensen363 :o)
Avatar billede ra1101 Nybegynder
28. april 2004 - 14:52 #28
Jeg er godt nok ikke nogen særlig god "kodehaj" men som jeg ser jeres hjælp her, så har jeg gjort følgende......så ret mig hvis jeg gør noget forkert.
1. Formulardesign, 2. Opretter en ny knap, 3. Generer hændelsesprocedure, 4. vælger kodegenerator, 5. Indsætter HELE koden fra "MakeIT Easy" databasen.

Det virker bare stadig ikke, nu får jeg følgende fejl:
Compile error: Method or data member not found

Hjælp..............
Avatar billede ra1101 Nybegynder
28. april 2004 - 15:04 #29
Iøvrigt så har jeg netop afprøvet "makeITeasy" databasen, og som jeg ser den så ÅBNER den bare en fil. Det jeg har brug for er at importere en fil!!!!!
Avatar billede jensen363 Forsker
28. april 2004 - 15:18 #30
Det som du skal have kopieret i første omgang, er de tre moduler.

På din formular, skal du oprette et tekstfelt, med navnet sti.

Nedenstående kode tildeler du knappen :

  Dim dlg As New CommonDialog
  Dim StrFilter As String
 
  StrFilter = dlg.AddFilterItem(StrFilter, "Excel-filer (*.xls)", "*.xls")
  StrFilter = dlg.AddFilterItem(StrFilter, "Alle filer (*.*)", "*.*")
  dlg.DialogTitle = "Find fil"
  dlg.filter = StrFilter
  dlg.ShowOpen
  Me!sti = dlg.Filename
 
  Importfil = Me!sti

  DoCmd.TransferSpreadsheet acImport, 0, "tblData", Importfil, True, ""
Avatar billede jensen363 Forsker
28. april 2004 - 15:29 #31
P.S. Modulerne importerer du ind i din egen database
Avatar billede ra1101 Nybegynder
28. april 2004 - 15:42 #32
Hvad mener du med den sidste kommentar "Importerer" ?????
Avatar billede ra1101 Nybegynder
28. april 2004 - 15:42 #33
Når jeg kører den nu stopper den i denne linie:

  StrFilter = dlg.AddFilterItem(StrFilter, "Excel-filer (*.xls)", "*.xls")
Avatar billede jensen363 Forsker
28. april 2004 - 15:59 #34
zip databasen og send den til ose@post.dk så skal jeg kigge på problemet
Avatar billede jensen363 Forsker
29. april 2004 - 07:37 #35
Databasen returneret med følgende bemærkninger :

Nu skulle det gerne virke ... problemet var, at din database var fejlbehæftet. så
det eneste jeg reelt har gjort er, at kopiere hele indholdet over i en ny, og
så foretaget mindre justeringer i din programkode.

DoCmd.TransferSpreadsheet acImport, 0, "Rabatskabelon", Importfil, True, ""
Avatar billede ra1101 Nybegynder
29. april 2004 - 07:59 #36
Det er simpelthen bare kanon, det virker skide godt.

Er der mulighed for at bygge muligheden for at vælge hvilket ark der skal importeres (det SKAL være  brugeren der selv skal vælge dette!!!)?????

Desværre så kan jeg i dette tilfælde risikere at det er forskellige ark, på den aktuelle Excelfil der skal importeres.
Avatar billede mugs Novice
03. maj 2004 - 11:16 #37
Navnet på det område du vil importere er det sidste argument. Her Ark1!A1:A25:


DoCmd.TransferSpreadsheet acImport, 0, "Rabatskabelon", Importfil, True, "Ark1!A1:A25"

Evt. kan du lade brugeren indtaste området ved at definere en variabel, der modtager teksten via en Inputbox.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester