Avatar billede region Nybegynder
29. november 2001 - 09:28 Der er 83 kommentarer og
2 løsninger

Problemer med import

Jeg har en TAB separeret textfil jeg vil importere i Access97. Problemet er bare at access \"vil\" placere alle data i række i ( jeg har hørt fra Thomas Jepsen at det er noget med linefeed).

hvordan fortæller jeg access at filen kun har 28 kolonner, det giver jo ikke problemer ved import af \",\" filer.

jeg kan ikke ændre filens udseende da jeg får den fra externt kilde. Jeg kan åbne den i excel og gemme som CSV men det er da for omstændigt.

Hvad gør jeg....???

Fuld point for den komplette løsning
Avatar billede terry Ekspert
29. november 2001 - 09:45 #1
Region, if you send the databasea and text file (zipped) then I will take a look at the problem. If you cant do that then sorry, I cant help!
29. november 2001 - 09:48 #2
Region,

Det jeg flere gange har snakket om er at åbne filen i f.eks. Word eller Excel og derefter gemme det.

nedenstående funktion skal du bare kalde inden du importere filen. Du kalder den således:
FixLineFeedProblem \"C:\\Dokumenter\\MinFil.txt\"

Public Sub FixLineFeedProblem(Sti As String)
    Dim W As New Word.Application
    W.Documents.Open Sti
    W.Documents.Save True, False
    W.Quit
End Sub

NB: Husk at sætte en reference til Word

/Thomas
29. november 2001 - 09:50 #3
...fortsat

Jeg ved dog ikke med sikkerhed om det er det, som er dit problem.

Brug forøvrigt hellere denne funktion:

Public Function FixLineFeedProblem(Sti As String)
    Dim W As New Word.Application
    W.Documents.Open Sti
    W.ActiveDocument.SaveAs Sti
    W.Quit
End Function
Avatar billede region Nybegynder
29. november 2001 - 09:53 #4
Thomas :

Kan du ikke lige give det eksakte script :

Min fil hedder d:\\niels.txt
29. november 2001 - 09:56 #5
OK! Du putter denne procedure i en modul:

Public sub FixLineFeedProblem(Sti As String)
    Dim W As New Word.Application
    W.Documents.Open Sti
    W.ActiveDocument.SaveAs Sti
    W.Quit
End sub


Herefter indsætter du denne sætning lige inden du skal til at importere din fil:

FixLineFeedProblem \"D:\\Niels.txt\"
Avatar billede region Nybegynder
29. november 2001 - 10:07 #6
Ikke forstået...????

Når jeg åbner en formular \"form1\" skal den lave dit halløj hvorefter jeg kører min docmd.import...osv

kan du vise mig dette
29. november 2001 - 10:11 #7
Nu ved jeg ikke præcist hvordan du importere (format, filespecname, tabel m.m.), men koden skal se nogenlunde sådan ud:

FixLineFeedProblem \"D:\\Niels.txt\"
docmd.TransferText acExportDelim,\"DinSpec\",\"DinTabel\",\"D:\\Niels.txt\"
Avatar billede region Nybegynder
29. november 2001 - 11:15 #8
Vil det sige det skal se sådan ud...:

Private Sub Form_Open(Cancel As Integer)
Dim W As New Word.Application
W.Documents.Open Sti
W.ActiveDocument.SaveAs Sti
W.Quit
FixLineFeedProblem \"D:\\Niels.txt\"
docmd.TransferText acimportDelim,\"test\",\"niels\",\"D:\\Niels.txt\"
end sub


NB:
import funktionen skal du ikke lægge noegt i  det er bare en test... jeg kender selv stien til dette...
29. november 2001 - 11:26 #9
Det skulle virke, ja.

Stadig under forudsætning, at det er LineFeed-problemer, du har ;o)
Avatar billede terry Ekspert
29. november 2001 - 11:28 #10
You comment 11:26 Thomas, thats why I didnt want to get involved without know what the real problem is :o)
Avatar billede region Nybegynder
29. november 2001 - 11:44 #11
Den melder fejl på

Dim W As New Word.Application

user defined type not defined..???
29. november 2001 - 12:01 #12
Som jeg skrev tidligere, skal du sætte en reference til Word.
I VBA går du i menuen Tools->References og krydser \"Microsoft Word x.0 Object Library\" af.
Avatar billede region Nybegynder
29. november 2001 - 12:44 #13
en sidste ting før jeg tror det virker...

Den stopper og melder fejl i scriptet på :

W.Documents.Open (\"listeandescreppii.txt\")

Specified path not found
Avatar billede region Nybegynder
29. november 2001 - 12:46 #14
øhhh den hedder faktisk :

W.Documents.Open (\"d:\\listeandescreppii.txt\")
29. november 2001 - 12:50 #15
Hmm, jeg tror, at jeg var lidt for hurtig før til at godkende din kode.

Den skal se sådan ud, hvis du ikke vil gemme funktionen i et modul:

Private Sub Form_Open(Cancel As Integer)
Dim W As New Word.Application
W.Documents.Open \"D:\\Niels.txt\"
W.ActiveDocument.SaveAs \"D:\\Niels.txt\"
W.Quit
docmd.TransferText acimportDelim,\"test\",\"niels\",\"D:\\Niels.txt\"
end sub

29. november 2001 - 12:51 #16
ok, så sådan da:

Private Sub Form_Open(Cancel As Integer)
Dim W As New Word.Application
W.Documents.Open (\"d:\\listeandescreppii.txt\")
W.ActiveDocument.SaveAs \"d:\\listeandescreppii.txt\"
W.Quit
docmd.TransferText acimportDelim,\"test\",\"niels\",\"d:\\listeandescreppii.txt\"
end sub
Avatar billede region Nybegynder
29. november 2001 - 12:53 #17
det virker altså bare ikke... prøv selv at køre denne fra en Access97.


Private Sub Form_Open(Cancel As Integer)
DoCmd.SetWarnings False
DoCmd.RunSQL \"delete * from PIM\"
Dim W As New Word.Application
W.Documents.Open \"D:\\listeandescreppii.txt\"
W.ActiveDocument.SaveAs \"D:\\listeandescreppii.txt\"
W.Quit
DoCmd.TransferText acImportDelim, \"listean\", \"PIM\", \"D:\\listeandescreppii.txt\", True
DoCmd.SetWarnings True
End Sub
Avatar billede region Nybegynder
29. november 2001 - 12:55 #18
den går i \"kage\" ved :
W.Documents.Open \"D:\\listeandescreppii.txt\"

hvis denne linie \"remarkes\" går den i \"kage\" ved
W.ActiveDocument.SaveAs \"D:\\listeandescreppii.txt\"
men det kan vel være fordi den ikke har åbnet et dokument endnu og derfor ikke kan gemme dette
Avatar billede region Nybegynder
29. november 2001 - 12:58 #19
jeg sender gerne databasen til dig.. ( fylder nogle få K )
Avatar billede terry Ekspert
29. november 2001 - 13:00 #20
:o)
Avatar billede region Nybegynder
29. november 2001 - 13:03 #21
Terry

:o) ?????

Jeg kan næsten se det for mig at du synes jeg hver gang jeg stiller et spørgsmål kræver mere og mere eller hva\'....

Er det ikke rimeligt at et script virker inden man acceptere...!!!!
Avatar billede terry Ekspert
29. november 2001 - 13:13 #22
Region lets not let this get out of hand like it did a while back :o)

I didnt mean it like that at all, and of course it should work before you accept the answer.
But I know that this import problem has been bothering you for quite a while now. So I didnt want to get involved unless I was able to see what the actual problem was, and it isnt always easy exchanging emails.
Thats why I suggested 09:45 that you could send the dB.

mvh
terry
Avatar billede region Nybegynder
29. november 2001 - 13:19 #23
Jeg undskylder min ubehørige opførsel... :-)

sender den lige til dig...
Avatar billede terry Ekspert
29. november 2001 - 13:22 #24
Region> Shouldnt Thomas get the cahnce first, he has after all put some work into it!

Thomas are you in the middle of your siesta!
Avatar billede region Nybegynder
29. november 2001 - 13:24 #25
i får begge point når jeg har løst mit problem...

fordelingen bliver vi i fællesskab enige om...
29. november 2001 - 13:31 #26
Sorry, jeg er lidt fraværende.
Min datter er syg, så checker kun lige, når jeg kommer forbi PC\'en eller når hun sover (som hun gør nu)

Hvis du ikke har sendt den til Terry, må du gerne sende den til tj@makeiteasy.dk

Husk at sende txt-filen med.

/Thomas
Avatar billede region Nybegynder
29. november 2001 - 13:32 #27
nu har i begge fået den.
29. november 2001 - 13:42 #28
Min fejler ikke!

Jeg får importeret en post (den eneste, der er).

Jeg får til gengæld en anden fejl, når jeg prøver at kører den et par gange. Det er i Docmd.Transfertext-linien. Den siger at filen er låst. Dette skyldes at Word endnu ikke er blevet lukket helt ned.
Derfor har jeg lagt en pause på et sekund en, og så virker det.

Hele koden i formularen ser herefter således ud (kopier og sæt ind):

Option Compare Database
Option Explicit

Private Declare Sub sapiSleep Lib \"kernel32\" _
        Alias \"Sleep\" _
        (ByVal dwMilliseconds As Long)

Sub Wait(lngMilliSec As Long)
    If lngMilliSec > 0 Then
        Call sapiSleep(lngMilliSec)
    End If
End Sub

Private Sub Form_Open(Cancel As Integer)
DoCmd.SetWarnings False
DoCmd.RunSQL \"delete * from PIM\"
Dim W As New Word.Application
W.Documents.Open (\"d:\\listeandescreppii.txt\")
W.ActiveDocument.SaveAs \"d:\\listeandescreppii.txt\"
W.Quit
Wait 1000
DoCmd.TransferText acImportDelim, \"listean\", \"PIM\", \"D:\\listeandescreppii.txt\", True
DoCmd.SetWarnings True
End Sub
Avatar billede terry Ekspert
29. november 2001 - 13:47 #29
region> If I remember wasnt there a problem importing a large numberof records, or was this an entirely different problem?

So it may work with one single record (line) but not with the complete file!
Avatar billede region Nybegynder
29. november 2001 - 13:50 #30
forbandet lorte pis......

min melder stadig fejl på :

W.Documents.Open (\"d:\\listeandescreppii.txt\")

runtime error \'-2147024893(80070003)\':
automation error
the system cannot find the path specified


Og som i ved fra ZIP filen er den god nok...
Avatar billede region Nybegynder
29. november 2001 - 13:53 #31
Hej Terry.:
nej det var netop linefeed tror jeg. Uden denne konvertering laver den ikke sepration på hvornår det er en heading og hvornår det er en dataværdi.
Derfor gik access \"kold\".

Hele filen er på 48000 poster hvilket betød at access ville oprette 48000 kolonner hvilket ikke kan lade sig gøre...
29. november 2001 - 13:54 #32
Den eneste forskel, jeg kan se, er at jeg kører Word 2000 og du formentlig kører Word 97.

Prøv at åbne word, start makrooptageren (Funktioner->Makroer->Indspil makro) klik OK og prøv derefter at åbne txt-filen. Stop makroindspilleren og gå ind i makroen igen og aflæs om syntaxen er anderledes i den linie.
Avatar billede terry Ekspert
29. november 2001 - 13:57 #33
well I hav eno problem importing the file you sent!!
Avatar billede region Nybegynder
29. november 2001 - 13:57 #34
sådan ser den ud i Word97 :

Sub Macro1()
\'
\' Macro1 Macro
\' Macro recorded 29-11-01 by SOLAR
\'
    Documents.Open FileName:=\"listeandescreppii.txt\", ConfirmConversions:=True _
        , ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:=\"\", _
        PasswordTemplate:=\"\", Revert:=False, WritePasswordDocument:=\"\", _
        WritePasswordTemplate:=\"\", Format:=wdOpenFormatAuto
    ActiveDocument.SaveAs FileName:=\"listeandescreppii.txt\", FileFormat:= _
        wdFormatText, LockComments:=False, Password:=\"\", AddToRecentFiles:=True, _
        WritePassword:=\"\", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
        False
End Sub
Avatar billede terry Ekspert
29. november 2001 - 13:58 #35
Access should also be able to import 48000 records, I have tried with 500,000!
29. november 2001 - 13:59 #36
Ok, så prøv med denne:

Option Compare Database
Option Explicit

Private Declare Sub sapiSleep Lib \"kernel32\" _
        Alias \"Sleep\" _
        (ByVal dwMilliseconds As Long)

Sub Wait(lngMilliSec As Long)
    If lngMilliSec > 0 Then
        Call sapiSleep(lngMilliSec)
    End If
End Sub

Private Sub Form_Open(Cancel As Integer)
DoCmd.SetWarnings False
DoCmd.RunSQL \"delete * from PIM\"
Dim W As New Word.Application
w.Documents.Open FileName:=\"listeandescreppii.txt\", ConfirmConversions:=True _
        , ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:=\"\", _
        PasswordTemplate:=\"\", Revert:=False, WritePasswordDocument:=\"\", _
        WritePasswordTemplate:=\"\", Format:=wdOpenFormatAuto
    w.ActiveDocument.SaveAs FileName:=\"listeandescreppii.txt\", FileFormat:= _
        wdFormatText, LockComments:=False, Password:=\"\", AddToRecentFiles:=True, _
        WritePassword:=\"\", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
        False
W.Quit
Wait 1000
DoCmd.TransferText acImportDelim, \"listean\", \"PIM\", \"D:\\listeandescreppii.txt\", True
DoCmd.SetWarnings True
End Sub
 

Avatar billede region Nybegynder
29. november 2001 - 14:03 #37
thomas:
nope.... virker ikke.... samme fejl som før...

Terry :

JA netop, men hvis din linefeed ikke er fastlagt vil du forsøge at importere 500.000 kolonner og ikke poster og det er her det går galt...!!!!
Avatar billede terry Ekspert
29. november 2001 - 14:03 #38
In th eimport wizard there is an \"Advanced\" button, select this and then choose DOS or OS/2 PC8 from the list, and then save the import spec. Then you import using this spec!
Avatar billede region Nybegynder
29. november 2001 - 14:04 #39
det har jeg prøvet...
Avatar billede terry Ekspert
29. november 2001 - 14:05 #40
and?
29. november 2001 - 14:10 #41
Vent lidt....kører du NT eller Windows 2000?

I så fald, skal du gå i joblisten (Ctrl+Alt+Delete) og kigge under Processer og se om Winword er åben en eller flere gange (hvis de er, skal du afbryde dem)

Prøv herefter igen

Jeg kan forestille mig at Word måske ikke er blevet afsluttet hver gang, fordi den har fejlet. Derved vil Word låse filen og du kan ikke få adgang til at åbne den.

Hvis du kører Win 98 eller 95 er du nødt til at genstarte, tror jeg.
Avatar billede terry Ekspert
29. november 2001 - 14:17 #42
Region> If you use the Advanced button you can alter the data type for each field. Access suggests a long integer for the EL no field try changing this to a double. It works!!
Avatar billede region Nybegynder
29. november 2001 - 14:17 #43
duer ikke... den smider en del væk...

29. november 2001 - 14:21 #44
Jeg er ved at være blank.....!
Avatar billede terry Ekspert
29. november 2001 - 14:23 #45
Niels> smider havd væk, linie?
If thats the case then this is why I need a complete file so as to see what the problem is!
Avatar billede region Nybegynder
29. november 2001 - 14:23 #46
Terry.

Alle mine felter i min spec er defineret som Text for at sikre at der her ikke går noget galt.

Jeg sender jer lige den komplette tekstfil for at se om det stadig virker hos jer...

( zippet)
Avatar billede terry Ekspert
29. november 2001 - 14:24 #47
I have no problem importing the file you sent with one record in(all fields)!
29. november 2001 - 14:30 #48
Jeg får kun importeret 20 poster. Resten forsvinder.
Hvis jeg forsøger at importere manuelt, går den bare i stå uden at komme med nogen fejlmeddelses overhovedet!!!??
Avatar billede region Nybegynder
29. november 2001 - 14:37 #49
HURRA...!!!!!!!!!!!

Det er det samme der sker for mig..... :-))))))))))

Hvis du prøver at minimere filen vil du se det er fordi hver post forsøger at \"lægge sig\" som en kolonne... Det vil dermed sige at access vil importere godt 48000 kolonner derfor går det i \"kage\"... Det er netop her din tidligere model med linefeed bliver aktuel fordi access ikke kan \"gøre dette\" af sig selv. Åbner du først filen i word, excel eller lign og gemmer den igen går det fint....

.. he he så er vi tilbage ved start igen er vi ikke.... :-)))))))

NB:

Jeg var ved at være ræd for at det var mig der var \"tosset\"
Avatar billede region Nybegynder
29. november 2001 - 15:04 #50
!!!!!!!

Er man mon gået kold over den \"hede\" korrespondance...
Avatar billede terry Ekspert
29. november 2001 - 15:05 #51
Access can max import 65000 CHARACTERS per line, I get an error telling me that there are some lines which are longer! I also get ann error that a single field is longer than 32766 (32885) characters.

It seems to me that you should look at the way the file is getting created in the first place.



Avatar billede region Nybegynder
29. november 2001 - 15:09 #52
Terry:

Prøv at åbne den i Excel, hvor alle felter er formatteret som text når du \"importerer\".
Gem den som en CSV fil og importer i Access hvor du siger at filen har headings....

Det kører uden problemo...

NB:
Jeg importerer den hver dag efter at have vendt den i excel...
Avatar billede terry Ekspert
29. november 2001 - 15:10 #53
Region> I dont know how far Thomas and you got with savinf the file through Word, but I dont think this is going to solve the problen. Access is having GREAT problems with translating various characters in the file, so it is unable to determine whether or notthe file is comma (CSV) or TAB delimnited. Also end of line sequences are mixing things up.

I think you should look CLOSELY as to how the file is getting created and see if its possible to alter the source of the problem!

Avatar billede region Nybegynder
29. november 2001 - 15:15 #54
Hvis konklussionen er at vi ikke kommer videre bør vi stoppe her og fordele point...

Må jeg høre forslag til fordeling...???
Avatar billede terry Ekspert
29. november 2001 - 15:16 #55
Who\'s given up?
Avatar billede terry Ekspert
29. november 2001 - 15:18 #56
If you want to stop now, then you and Thomas can decide who gets what, and I take whats left (if any)!
Then I can play around and sell (SOLAR) the solution!
Avatar billede region Nybegynder
29. november 2001 - 15:23 #57
he he...

Jeg mener bare skal grundfilen revideres vil jeg jo betale for at denne bliver ændret ved vores underleverandør af filen. Jeg havde bare håebt på at jeg selv kunne klare det
Avatar billede terry Ekspert
29. november 2001 - 15:38 #58
I can see that Excel is able to import the data, although I dont know if anything is getting lost under way. Why Access cant import the data, beats me, although I suspect its trying to be to clever and stumbles over its own feet, if you understand what I mean?
Avatar billede region Nybegynder
29. november 2001 - 16:05 #59
*G*
Avatar billede terry Ekspert
29. november 2001 - 19:55 #60
region>what have you decided on?
30. november 2001 - 08:48 #61
Region-> Siger du at det virker, hvis du manuelt åbner filen i Word og trykker Gem?

Hvis det er tilfældet, så KAN det jo lade sig gøre. Så er det jo kun et spørgsmål om at lave vores procedure om.

HAr jeg ret?
Avatar billede region Nybegynder
30. november 2001 - 09:34 #62
Yes Thomas du har ret...

Jeg har et excelark hvori jeg har lagt flg. procedure:

Private Sub Workbook_Open()

    Workbooks.OpenText FileName:=\"D:\\listeandescreppii.txt\", Origin:=xlWindows _
        , StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), _
        Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2), _
        Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 2), Array(15, 2), Array( _
        16, 2), Array(17, 2), Array(18, 2), Array(19, 2), Array(20, 2), Array(21, 2), Array(22, 2), _
        Array(23, 2), Array(24, 2), Array(25, 2), Array(26, 2), Array(27, 2))
    ChDir \"Y:\\PIM ACCESS DATABASE\\hostdata\"
    ActiveWorkbook.SaveAs FileName:= _
        \"Y:\\PIM ACCESS DATABASE\\hostdata\\listeandescreppii.csv\", FileFormat:=xlCSV, _
        CreateBackup:=False

End Sub


Kort fortalt beder jeg excel om at importere tekstfilen ind i excel hvor alle kolonner er formatteret som text ( istedet for generel som excel jo som udgangspunkt gør) Derefter gemmer excel filen på mit y:\\hostdata som en csv fil.

Så beder jeg access om at importere csv filen med flg. kommando :

Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
Dim RA As Recordset
  Set RA = CurrentDb.OpenRecordset(\"Dato for csv\")
If Not RA.EOF Then
  If Not RA!Importeret = Int(Now()) Then
  Label111.Visible = True
    RA.Edit
    RA!Importeret = Int(Now())
    RA.Update
  CurrentDb.Execute \"DELETE * FROM article\"
DoCmd.TransferText acImportDelim, \"CICS\", \"article\", \"y:\\PIM ACCESS DATABASE\\hostdata\\stibo.csv\", False
      CurrentDb.Execute \"DELETE * FROM pim\"
DoCmd.TransferText acImportDelim, \"stibo\", \"pim\", \"y:\\PIM ACCESS DATABASE\\hostdata\\listeandescreppii.csv\", True
      SendKeys \"%tdc\"
  End If
  End If
  Label111.Visible = False
End Sub

og vupti så importere access csv filen uden problemer overhovedet.... alle felter står rigtigt osv....
Avatar billede region Nybegynder
30. november 2001 - 09:36 #63
Som i kan se er hele access proceduren her vedlagt, men det er linie 15 den laver min kommando...
30. november 2001 - 09:41 #64
OK, vil det sige, at du ikke kan få Word til at lave tricket?

Så må vi bare lave koden, så den åbner Excel i stedet for Word. Det er bare lettere med Word, derfor valgte jeg Word. Og det har tidligere virket for mig.
Avatar billede terry Ekspert
30. november 2001 - 09:43 #65
If the file is longer than 65535 records then Excel cant maage it!
Avatar billede region Nybegynder
30. november 2001 - 09:45 #66
Den er ikke over 65536 poster.... godt 47000

Jeg tester lige hele filen med word....
30. november 2001 - 09:49 #67
Terry -> you keep talking about the amount of data. But Region says it work when opens and save in Excel. Therefore it will also work, when we get the code correct. Don\'t you think?
Avatar billede region Nybegynder
30. november 2001 - 09:49 #68
Øhhh. det virker ikke så godt med word....
30. november 2001 - 09:51 #69
ok, så laver vi det i Excel....vender tilbage om lidt!
Avatar billede terry Ekspert
30. november 2001 - 09:55 #70
Yes, but yesterday when I asked for some data I got one record, which I had no problems with, but when we got the full file then we got problems. I seem to recal that Region HAS had problems with large Excel files BECAUSE they were > 65535, and because I work in a service function, I know that almost anything is possible from a customer, also files > 65535 records when they say 47000!

But I would still like to know why Excel can import and Acccess cant!
30. november 2001 - 10:08 #71
Region-> Jeg har leget lidt med nedenstående kode og er kommet ret langt. Der er stadig nogle problemer. Jeg får et par fejl, når jeg importere til Access, men det skyldes garanteret bare min Importspecifikation, som skal ændres. Endvidere er der nogle problemer med at gemme filen, hvis den findes i forvejen. Men det er måske det, du har løst med din Sendkeys?
I min kode sletter jeg .csv-filen først (det kræver bare en On Error resume next, da der opstår fejl, hvis filen ikke findes).
Her er koden:

    On Error Resume Next
    Kill \"D:\\listeandescreppii.csv\"
    On error goto 0
    Dim X As New Excel.Application
    X.Workbooks.OpenText FileName:=\"D:\\listeandescreppii.txt\", Origin:=xlWindows _
        , StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), _
        Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2), _
        Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 2), Array(15, 2), Array( _
        16, 2), Array(17, 2), Array(18, 2), Array(19, 2), Array(20, 2), Array(21, 2), Array(22, 2), _
        Array(23, 2), Array(24, 2), Array(25, 2), Array(26, 2), Array(27, 2))
    Wait 1000
    X.ActiveWorkbook.SaveAs FileName:=\"D:\\listeandescreppii.csv\", FileFormat:=xlCSV, CreateBackup:=False
    X.Quit
    Wait 1000
    DoCmd.TransferText acImportDelim, \"listean\", \"PIM\", \"D:\\listeandescreppii.csv\", True
30. november 2001 - 10:08 #72
PS: Husk reference til Excel i stedet for Word
Avatar billede region Nybegynder
30. november 2001 - 12:19 #73
Jeg skal til møde nu men \"leger\" lidt videre med dit script senere
Avatar billede region Nybegynder
03. december 2001 - 10:50 #74
det begynder at ligne noget....
Der er et par småfejl.

1/ Din Wait 1000 kan den ikke finde!! Jeg remarkede denne og \"kørte\" videre.. Den bruger ved import i excel bare ikke den array der er defineret. ( importerer det hele i felt 1 i excel som om detvar en lang text. )

2/Access kan ikke importere fordi excel ikke er afsluttet... filen er i brug eller bla bla...
dvs. excel ska ligesom \"dræbes\" først.

Når den er færdig med at importere i access er dataplaceringen sikker kun forkert affødt af punkt 1.

Avatar billede region Nybegynder
03. december 2001 - 21:34 #75
Jeg undskylder min manglende deltagelse men har været til møder ude af huset de sidste par dage... Jeg har dog uden at få løst det helt, fået mere end rigeligt af svar her hvorfor jeg ville høre om i ønsker at stoppe her...!!!

Hvis ja, hjælp mig med at give jer point for jeres indsats..
03. december 2001 - 22:48 #76
Hey Region,

Jeg oplevede det samme som dit pkt 1.
Pkt 2, kan jeg dog ikke genkende, men det skyldes at din Wait 1000 ikke virker. Excel når simpelthen ikke at slippe filen. Du kan evt sætte en msgbox ind i stedet. Eller en anden form for forsinkelse (f.eks. et loop eller lign).

Tilbage til pkt 1: Jeg har lige prøvet at optage makroen selv, og der er nogle forskelle i de forskellige arrays. Min ser således ud:
X.Workbooks.OpenText Filename:=\"D:\\listeandescreppii.txt\", Origin:=xlWindows _
        , StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
        Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
        Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
        16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), _
        Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), Array(27, 1))

Med denne kode, bliver den indlæst rigtigt i Excel og bliver gemt.
Herefter skal du selvfølgelig huske at lave din importspecifikation om, så den bruger semikolon som seperator i stedet for tabulator.

Eneste problem tilbage, er at der kommer en del spørgsmål, som brugeren skal bekræfte, og som betyder at der opstår fejl i koden.

Jeg kigger lige lidt videre på det og sender dig resultatet asap - så afslut ikke spørgsmålet endnu :o)
Avatar billede region Nybegynder
04. december 2001 - 17:24 #77
HEjsa.

Jeg prøver lkige selv at teste en nyindtastning af macro i Excel og erstatter denne del i access.

( det samme som Thomas gjorde. )

så ser jeg lige hvad det bringer.
Avatar billede region Nybegynder
09. december 2001 - 22:11 #78
Hjalp ikke en dyt...!!!

vi må hellere holde her ( jeg har nu lige fået en anden type fil der skla indlæses i access som også er TAB... 150.000 poster så her går excel alligevel \"kold\".

hvordan skal der gives point...??? hjælp venligst hermed...
09. december 2001 - 22:18 #79
Well, efter min mening bør man altid give point efter følgende vægtede kriterier:

70% vægtning - Hvem har bidraget mest til et brugbart resultat (i dette tilfælde var der ikke nogen som ramte 100% rigtigt - beklager!)
30% vægtning - Hvem har brugt mest tid og flest kræfter på at hjælpe.

Men det er bare sådan, jeg selv giver point. Andre har sikkert andre meninger. (der er af og til også andre kriterier, som komer ind)

/Thomas
Avatar billede region Nybegynder
09. december 2001 - 22:30 #80
jeg kan se at thomas har været mest Aktiv i dette spørgsmål.

Thomas får derfor 150.
Terry får 70.

Såfremt der er nogen der føler sig snydt sig venligst til...
09. december 2001 - 22:33 #81
Fint med mig, men så mange point, har du jo slet ikke udbudt!
Avatar billede region Nybegynder
09. december 2001 - 22:33 #82
For satan det her lorte site....!!!!!

nu giver den fandme igen forkert selvom man beder den om noget andet...

Terry har fået 110 selvom han skulle have haft 70
Thomas har fået 40 selvom han skulle have haft 150

Terry må give thomas 40 spir....i et ny spørgsmål
jeg selv opretter lige en til Thomas på 70.
Avatar billede region Nybegynder
09. december 2001 - 22:35 #83
Avatar billede terry Ekspert
10. december 2001 - 08:22 #84
Good morning!
Yes, I was wondering why I got 110 points here, and Thomas only 40!

And dont you worry about me having 40 extra on my Access account Thoams, I will just not answer the next couple of questions that crop up, is that OK? :o)

And thanks for the points region :o)
Avatar billede terry Ekspert
10. december 2001 - 09:10 #85
Thoams = Thomas (sorry!)
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