txt bestand voor import wordt niet meer geaccepteerd

Status
Niet open voor verdere reacties.

flaggelant

Gebruiker
Lid geworden
17 sep 2009
Berichten
9
Hoi,


In verschillende excel bestanden maak ik gebruik van het automatisch importeren van txt bestanden voor het verwerken van dagelijkse gegevens in een overzichtslijst.

vanaf gisteren worden echter de txt lijsten niet meer "geaccepteerd" in de bestanden.

de import macro's geven nou allemaal een fout 1004;

"Het tekstbestand voor het vernieuwen van dit externe gegevensbereik kan niet worden gevonden.

Controleer of het tekstbestand niet is verplaatst of een andere naam heeft. Probeer vervolgens opnieuw te vernieuwen."

Omdat de txt bestanden over een netwerk worden opgehaald en die verbinding niet altijd even stabiel is heb ik het bestand uit de onderstaande macro eerst een keer verplaatst. Vanaf de C-schijf (incl aanpassing op de macro) is de verbinding zeker niet het probleem, maar dit gaf echter geen verbetering, en dus dezelfde foutmelding.

de laatste regel van de onderstaande macro wordt gearceerd bij de foutopsporing
(maar die melding schijnt vrij algemeen te zijn?)
" .Refresh BackgroundQuery:=False"

Als ik het refresh backgroundquery commando verwijder krijg ik geen foutmelding meer,
maar worden de gegevens ook niet geimporteerd.

Sub melkgiften()
'
' melkgiften Macro
'

'
Sheets("melkgiften").Select
Columns("A:J").Select
Selection.ClearContents
Range("a1").Select

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;c:\melkgiften.txt", Destination:=Range("a1") _
)
.Name = "melkgiften"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With


End Sub

mijn macro/vba kwaliteiten komen niet veel verder als macro's opnemen & copy paste werk, maar ik ga ervan uit dat het een instelling gerelateerd probleem is.
Dit omdat het opeens in meerdere bestanden voorkomt en ik geen aanpassingen heb gedaan in die programma's.

we draaien in XP met office 2007.

is er een instelling die het inlezen van txt bestanden blokkeerd of een andere reden waardoor dit veroorzaakt kan worden?

gr,

jens
 
Dat lijkt mij een zéér eigenaardige manier om een TXT bestand in te lezen :shocked:
Voor zover ik weet zijn "QueryTables" voor SQL based databases, dus waarom langs die weg een txt bestand inlezen lijkt mij zéér vreemd.

Begrijp ik de code goed wanneer ik zeg dat alle vorige data (kolommen A tem J) in sheet "melkgiften" gewist wordt.
Vervolgens wordt de txt file gelezen en de data vanaf cel A1 in dezelfde "melkgiften" sheet gezet.

Indien dit correct is, post eens een txt file en een xls file zoals die er zou moeten uitzien na het inlezen van die txt file, dan kunnen we iets doen... ...
 
@mcs51mc Kijk even voor in VBA help bij "querytables.add" en word wijzer :)
Textbestanden op die manier inlezen is niet ongebruikelijk, de querytable onthoudt namelijk de datatype-instellingen bij het vernieuwen. Een zeer goede, betrouwbare en makkelijke manier van inlezen van data uit tekstbestanden dus.

@flaggelant
De methode "Refresh" van het object Querytable, haalt(zoals de naam van de methode suggereert) de gegevens opnieuw op. Als je bestand niet word gevonden is het dus logisch dat je daar pas de foutmelding merkt.
Oftewel, je macro loopt vast bij Refresh omdat het tekstbestand niet kan worden gevonden.
als je het refresh weghaalt wordt inderdaad het tekstbestand niet opnieuw opgehaald omdat je er geen opdracht toe geeft.

Controleer in de VBA Editor of je het juiste pad hebt geselecteerd door in het "venster direct" (Ctrl-G) het volgende commando te typen: (en Enter op de regel met tekst)

Code:
?"Het bestand bestaat "&iif(len(dir("c:\melkgiften.txt"))=0,"niet","")

Als het bestand gewoon bestaat kan het zijn dat de indeling is veranderd, misschien een kolom meer of minder.
Je kunt dan een nieuwe macro proberen op te nemen, dat hoeft niet al te moeilijk te zijn.

Als je het niet kunt vinden, probeer dan een nieuwe macro op te nemen en kijk of dat je probleem verhelpt.

Succes.
 
bedankt voor de reacties en ook meteen sorry voor mijn late reactie, pc's zijn niet bepaald core-busines hier..

het probleem is inmiddels verholpen, waaraan het precies heeft gelegen is me nog altijd niet helemaal duidelijk. waarschijnlijk toch gedeeltelijk aan de communicatie met het bestand (ondanks dat deze vanaf de C-schijf dus ook niet opgehaald kon worden, met de bijbehorende & aangepaste macro)


De tekstbestanden zien er uit zoals hieronder (maar dan een paar duizend rijen extra), spaties zitten dus op de ";" en die worden ook automatisch zo per kolom ingelezen.
het excel bestand op zich is meer als 17 mb groot, dus dat lijkt me niet verstandig om die hier neer te zetten :D

050. Melkgiften per geit van de afgelopen dag 18-5-2011 0:15:39
24475;96524475;2;Ochtend;17-5-2011 6:19:52;2,3;13,7;406;38
24069;96024069;2;Ochtend;17-5-2011 6:19:58;0,8;13,7;280;39
86458;40286458;2;Ochtend;17-5-2011 6:20:02;2,0;14,1;226;40
32771;32232771;2;Ochtend;17-5-2011 6:20:06;1,5;15,2;312;41
57283;94557283;1;Ochtend;17-5-2011 6:20:12;1,6;12,4;152;43
87052;40287052;1;Ochtend;17-5-2011 6:20:13;3,1;14,1;248;44
23905;96623905;2;Ochtend;17-5-2011 6:20:29;1,9;15,2;149;47
62837;94562837;1;Ochtend;17-5-2011 6:20:33;1,9;14,1;127;48
25134;96625134;2;Ochtend;17-5-2011 6:20:36;0,9;11,1;135;49
86723;40286723;1;Ochtend;17-5-2011 6:20:48;3,9;13,2;329;51
22083;96822083;1;Ochtend;17-5-2011 6:20:50;1,4;13,2;117;52
5459;96405459;1;Ochtend;17-5-2011 6:20:55;1,8;13,2;136;53
86793;40286793;1;Ochtend;17-5-2011 6:21:20;1,9;14,6;117;55
5682;96405682;1;Ochtend;17-5-2011 6:21:21;2,0;11,4;170;54
57110;94557110;1;Ochtend;17-5-2011 6:21:26;1,8;12,4;177;56

(dier;responder;rantsoengroep;dagdeel;datum+tijd;kg melk;melkduur;melkstalplaats)

iig toch bedankt voor de aandacht.

mvg,

jens
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan