11. oktober 2004 - 13:33Der er
29 kommentarer og 1 løsning
Import funktion
Jeg har problemer med at anvende den allerede eksisterende guide til import i access - den findes simpelthen ikke.
Kan man via kode selv opbygge sådan en guide?
Jeg skal udelukkende kunne importere excel filer - JEg skal selv bestemme i hvilken tabel jeg vil placere dem i - da dette kan variere!! Nogle som kan hjælpe mig med sådan??
Faar du fejl naar du proever at importere? og i saa fald hvilke? Problemet er at man godt kan bygge en ny via kode, men hvis der f.eks er noget grundlaeggende galt i office installationen vil det nok ikke fungere alligevel - saa det er bedst at faa det checket foerst :-)
Hvad sker der f.eks naar du hoejre-klikker i tabel visningen og vaelger import, og derefter vaelg Microsoft excel i filtype i den "Aabn fil" box der vises?
Det er vigtigt at påpege at systemet kørere på en Access 2003 runtime version - Men den skriver at Guiden importer regneark ikke er i registeringsdatabasen -
Mugs den dur desværre ikke - som sagt skal jeg kunne vælge hvor arket skal hen - Altså hvilken tabel jeg vil tilføje det til -Og jeg skal også have en open form hvor jeg kan angive hvilken fil jeg vil importere!!
Excel data kommer til at ligge i tabellen import. Du kan blot udskifte det med et andet tabelnavn. I dette eksempel kan du selv vælge hvilken Excel-fil du vil importere fra, blot du indtaster stien i Inputboksen:
Dim a As String a = InputBox(Prompt:="Indtast stien til Excel-arket.", Title:="Hvor ligger Excel-filen?", Default:="") DoCmd.SetWarnings False DoCmd.TransferSpreadsheet acImport, 0, "Import", a, True, "" MsgBox "Importen er udført."
Evt. kan du lege med en makro og benyt handlingen OverførRegneark
1. For lige at faa det paa det klare - kan du overhovedet importere Excel-filer? Hvis du afproever mugs' kode virker den saa? Der kan vaere problemer med nogle af office-driverne 2. Fremfor at bruge en input-box til sti-angivelse til filer vil jeg anbefale at du smider koden fra linket erunder i et modul i din DB. Herefter kna du altid kalde GetOpenFile. Koden findes paa: http://www.mvps.org/access/api/api0001.htm 3. Det bliver ret svedigt at kode en guiden import af regneark helt fra bunden hvis du har brug for at kunne give fejlmeddelelser paa fejl i struktur af regneark osv.
Ja de står ikke som deaktivede - men igen jeg køre jo på en runtime 2003 - men mine guider skulle alligevel virke for min version 2000 jeg har i systemet!
Din kode virker fint - og nej jeg får ingen fejl - Men det er bare ikke sådan at jeg vil have import funktionen! MAn skal både vælge hvor man vil placere data og hvor de skal tages fra ved at få lovat gennemse;-)
lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type
Function LaunchCD(strform As Form) As String Dim OpenFile As OPENFILENAME Dim lReturn As Long Dim sFilter As String OpenFile.lStructSize = Len(OpenFile) OpenFile.hwndOwner = strform.Hwnd sFilter = "All Files (*.*)" & Chr(0) & "*.*" & Chr(0) & _ "JPG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0) OpenFile.lpstrFilter = sFilter OpenFile.nFilterIndex = 1 OpenFile.lpstrFile = String(257, 0) OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1 OpenFile.lpstrFileTitle = OpenFile.lpstrFile OpenFile.nMaxFileTitle = OpenFile.nMaxFile OpenFile.lpstrInitialDir = "C:\Billede" OpenFile.lpstrTitle = "Vælg en fil og tryk på Åbn." OpenFile.flags = 0 lReturn = GetOpenFileName(OpenFile) If lReturn = 0 Then MsgBox "Manglende fil!", vbInformation, _ "Du har ikke valgt en fil fra Stifinderen." Else LaunchCD = Trim(OpenFile.lpstrFile) End If End Function
Og denne til en kommandoknap:
Dim a As String Me.Kommandoknap26.HyperlinkAddress = LaunchCD(Me) Me.Tekst24 = Me.Kommandoknap26.HyperlinkAddress a = Me.Tekst24 DoCmd.TransferSpreadsheet acImport, 0, "Import1", a, True, ""
Dim a As String Me.Kommandoknap26.HyperlinkAddress = LaunchCD(Me) Me.Tekst24 = Me.Kommandoknap26.HyperlinkAddress a = Me.Tekst24 DoCmd.TransferSpreadsheet acImport, 0, "Import1", a, True, ""
Så tror jeg, at dit modul er forkert. Bemærk at 1. del af koden er indsat under Generals Declaration:
Option Compare Database Option Explicit Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _ "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long Private Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type
Dette skal i en funktion i samme modul:
Function LaunchCD(strform As Form) As String Dim OpenFile As OPENFILENAME Dim lReturn As Long Dim sFilter As String OpenFile.lStructSize = Len(OpenFile) OpenFile.hwndOwner = strform.Hwnd sFilter = "All Files (*.*)" & Chr(0) & "*.*" & Chr(0) & _ "JPG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0) OpenFile.lpstrFilter = sFilter OpenFile.nFilterIndex = 1 OpenFile.lpstrFile = String(257, 0) OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1 OpenFile.lpstrFileTitle = OpenFile.lpstrFile OpenFile.nMaxFileTitle = OpenFile.nMaxFile OpenFile.lpstrInitialDir = "C:\Billede" OpenFile.lpstrTitle = "Vælg en fil og tryk på Åbn." OpenFile.flags = 0 lReturn = GetOpenFileName(OpenFile) If lReturn = 0 Then MsgBox "Manglende fil!", vbInformation, _ "Du har ikke valgt en fil fra Stifinderen." Else LaunchCD = Trim(OpenFile.lpstrFile) End If End Function
Du kan ikke i importen angive, at dubletter skal frasorteres. Men lav din import til en temporær tabel, og i en sådan kan du manipulere med data. Når data er rensede, kan du så smide dem over i den rigtige tabel.
Hmm kan du skrive koden ud i et som den skal være??
Synes godt om
Ny brugerNybegynder
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.