Thema Datum  Von Nutzer Rating
Antwort
08.04.2016 10:28:26 Memento
NotSolved
08.04.2016 13:26:48 Gast2596
NotSolved
11.04.2016 07:50:39 Memento
NotSolved
Blau einlesen eines Headers mit vba für Access
11.04.2016 17:47:29 Gast3354
Solved
12.04.2016 09:22:11 Memento
NotSolved

Ansicht des Beitrags:
Von:
Gast3354
Datum:
11.04.2016 17:47:29
Views:
1270
Rating: Antwort:
 Nein
Thema:
einlesen eines Headers mit vba für Access

Hallo Memento! Also arbeite eigentlich nicht mit Access aber unten das sollte trotzdem klappen. Wie letztens aber schon geschrieben, musst du (bist ja Besitzer der Quelldateien), mal schauen, ob du in dem Header irgendwelche Besonderheiten finden kannst, die dir helfen die Nummer eineindeutig !! zuzuordnen. Ich bin mal, auf Grund des Beispieles davon ausgegangen, dass sie gesuchte Nunmer die erste Zeichenreihenfolge mit mehr als 6 Zahlen hat. Kannst du aber  noch abändern.

Wie du schon festgestellt hast, klappt die INPUT Methode nicht da SUB als Dokumentende interpretiert wird. Hätte 2 Möglichkeiten im Angebot,

1. Variante:

Abstecher in Excel machen und mit

Workbooks.OpenText Filename:=Dateiname, DataType:=xlDelimited, Tab:=True

die Datein in ein neues Excel Sheet (wird erstellt) einlesen und dann bearbeiten. Weiß aber nicht, ob das Fehlerfrei aus Access läuft und geht auch nur, wenn du deine Daten im TXT Format hast. Solltest du auf pdf Dokumente zugrifen geht das nicht.

 

2. Variante:

Den Lesemodus ändern. Lese die Datei binary. Dann wird nicht das gelesene Zeichen interpretiert sondern "nur" als Wert genommen. Bei deiner Variante liest du alle Zeilen ein. Dauert m.E. lange, wobei du ja nur den Header brauchst - 4 bis 5 Zeilen / die ersten 300 Zeichen !? Da solltest du mal schauen, dass könnte man noch ändern, so dass er nur eine bestimmte Zeilenzahl bzw. Zeichenzahl einliest. Ansonsten einfach mit der get Methode arbeiten (da ist dann schon alles drin und du musst die Zeilen nicht verketten). Sind dann wie folgt aus. Habe dazu mal noch eine Funktion gepackt, die die erste Zahl mit mehr als 6 Zeichen ausgibt - sollte dann vermtl. deine Zahl sein. 

Schau mal, ob das so wie gewünscht klappt.

 

Sub zahl_suchen()
Dim text As String
Dim Datei As String
Dim Nr As Long

Datei = "C:\Users\ich\Desktop\new.txt"
Nr = FreeFile

Open Datei For Binary As Nr

text = Space(LOF(Nr))
Get #Nr, , text
Close Nr

Call auswerten(text)
End Sub


Function auswerten(ByVal quelle As String)
Dim regEx As Object
Dim treffer As Object
    
Set regEx = CreateObject("Vbscript.Regexp")
    
With regEx
    .Pattern = "[0-9]+"
    .Global = True
    Set treffer = .Execute(quelle)
End With
    
With treffer
    If .Count > 0 Then
        For i = 1 To .Count
            If Len(.Item(i - 1)) > 6 Then
                MsgBox .Item(i - 1)
                Exit For
            End If
        Next i
    End If
End With
    
End Function

 

Das sollte eigentlich klappen.

Viele Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
08.04.2016 10:28:26 Memento
NotSolved
08.04.2016 13:26:48 Gast2596
NotSolved
11.04.2016 07:50:39 Memento
NotSolved
Blau einlesen eines Headers mit vba für Access
11.04.2016 17:47:29 Gast3354
Solved
12.04.2016 09:22:11 Memento
NotSolved