MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 24.05.2018, 11:28   #1
buliwyf
MOF User
MOF User
Konfus Acc2016 - wert in txt finden, anderen wert aus der zeile gegen akt. Datum gegenprüfen ?

Hallo,

Ich (möchte) scanne in ein ungebunden txtfeld(eaninput) einen ean code ein.
Nun soll geprueft werden ob dieser ean code in einer txt datei vorhanden ist,
wenn ja dann soll aus dieser txt datei bei diesem wert ein anderer wert aus dieser zeile mit dem heutigen Datum gegen geprüft werden.

In dieser txt datei sind daten/werte durch Komma getrennt. (txt in anfuehrungszeichen, hoffe das gibt kein Problem?)

wenn der ean code in der txt datei gefunden wurde (zu 100% der fall) soll das array ? an der 9 stelle gegen das heutige Datum überprüft werden.

hier ein beispiel einer zeile in der txt datei:

0,"05511","00008",18001,"Beispielname","444444444444301",6.00,4.2752,"29.01.18","23.05.18",0.0,7,"05","Beispiel",12,"1"

An der 9 Stelle steht in diesem Beispiel das Datum 29.01.18
An der 6 Stelle steht der EAN Code.

In diesem Fall muss das Ergebnis lauten Msgbox : Das Datum liegt in der Vergangenheit.
(kann man das farblich ausgeben ? zb. rot ?)

Sollte das Datum in der Zukunft liegen, Msgbox : Das Datum liegt in der Zukunft.
(farblich grün ?)

das ungebunden txt feld in der der ean code eingescannt wird hat den namen eaninput.
die zu prüfende txt datei liegt zb. unter : c:eancode enacode.txt

Für eure Hilfe bedanke ich mich schon einmal im vorraus.

LG Stef

Geändert von buliwyf (24.05.2018 um 12:59 Uhr).
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.05.2018, 13:01   #2
Joss
MOF Profi
MOF Profi
Standard

Hallo Stef.

Zitat: von buliwyf Beitrag anzeigen

wenn der ean code in der txt datei gefunden wurde (zu 100% der fall) soll das array ? an der 9 stelle gegen das heutige Datum überprüft werden.

Grober Ablauf:
Als ersten Schritt würde ich die Textdatei in eine Variable einlesen.
VBA Tipp: Textdatei einlesen
Dann kannst du dort den EAN-Code suchen, und deine entsprechenden Gegenprüfungen durchführen.

Gruß
Josef
Joss ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.05.2018, 13:22   #3
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

Zitat:

Als ersten Schritt würde ich die Textdatei in eine Variable einlesen.

Wozu? Die Datei kann doch gleich als verknüpfte Tabelle "importiert" werden.

Zitat:

In dieser txt datei sind daten/werte durch Komma getrennt. (txt in anfuehrungszeichen, hoffe das gibt kein Problem?)

Nein, wenn du die Importspezifikation entsprechend einrichtest.

gruss ekkehard

__________________

--
S.M.I.²L.E.
Beaker s.a. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.05.2018, 14:07   #4
buliwyf
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hab ich erwähnt das ich "sehr" wenig Ahnung von VBA habe ?
Ein wenig konkretere, genauere Hilfe, ein Beispiel ? wäre supi.

Danke.
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.05.2018, 15:15   #5
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,
Ich versuch's Mal.

Verknüpfen der Textdatei:
Menu "Externe Daten" -> "Textdatei" -> dem Assistenten folgen.

Luftcode:
Code:

Private Sub ScanTextfeld_AfterUpdate()
'dein Scanner muss ein CarriageReturn (CR) liefern

    Dim rst As DAO.Recordset
    Dim PrDatum As Date()
  
    Set rst = CurrentDb.OpenRecordset("DieVerknüpfteTabelle")

    rst.FindFirst "EANFeldInTabelle = '" & Me.ScanTextfeld & "'"
    PrDatum = rst.Fields("FeldMitDatum") 

    If PrDatum <= Date() Then
    'Heute ist somit schon Vergangenheit
        MsgBox "Das Datum (" & PrDatum & ") liegt in der Vergangenheit!"
    Else
        MsgBox "Das Datum (" & PrDatum & ") liegt in der Zukunft!"
    End If

rst.Close
Set rst = Nothing

End Sub
gruss ekkehard

__________________

--
S.M.I.²L.E.
Beaker s.a. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 13:34   #6
buliwyf
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo und danke erstmal,

(Backslash nimmt er hier nicht, wegen dem Pfad zur txt Datei)

Code:

Set rst = CurrentDb.OpenRecordset("C:UserstesterDocumentsVBAtest11.TXT")
funktioniert so natuerlich nicht.

Wäre es nicht sinnvoll das mit einzubauen ? Um dann mit dem gefüllten intFilenumber weiter zu arbeiten ?
Code:

Public Function DateiMitFeldernLesen()

    Dim intFilenumber As Integer

    Dim strLine As String

    intFilenumber = FreeFile

    Open "C:UserstesterDocumentsVBAtest11.TXT" For Input As intFilenumber

    Do While Not EOF(intFilenumber)

        Input #intFilenumber, Artikelnummer, _
            Artikelname, Liefereinheit usw usw usw

    Loop

    Close intFilenumber

End Function
End Function
Bin für weitere Hilfe dankbar.

LG und ein schönes Wochenende.
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.05.2018, 15:34   #7
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

Zitat:

Wäre es nicht sinnvoll das mit einzubauen ?

Keine Ahnung, ich kenne die Datei ja nicht. Wenn deren Aufbau aber so ist,
wie du beschrieben hast, halte ich meinen Ansatz für besser; - hast du das
denn mal probiert?
Wenn ja, auf welche Probleme bist du dabei gestossen?
gruss ekkehard

__________________

--
S.M.I.²L.E.
Beaker s.a. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.05.2018, 15:02   #8
buliwyf
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Ekkehard,

Zitat:

hier ein beispiel einer zeile in der txt datei:

0,"05511","00008",18001,"Beispielname","444444444444301",6.00,4.2752,"29.01.18","23.05.18",0.0,7,"05","Beispiel",12,"1"

An der 9 Stelle steht in diesem Beispiel das Datum 29.01.18
An der 6 Stelle steht der EAN Code.

Ja hatte ich so probiert und den Pfad angepasst...fehlermeldung: tabelle bzw. die txt datei wird nicht gefunden.

In deinem Beispiel steht zb.
Code:

rst.FindFirst "EANFeldInTabelle
woher weiss vba welches das erste ean feld ist ?

Mit infilenumber koennte man die felder in der txt datei zuordnen und diese direkt namentlich ansprechen, ....oder ?
Ist nur so ne idee...



MFG
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.05.2018, 15:34   #9
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

Zitat:

Ja hatte ich so probiert und den Pfad angepasst...fehlermeldung: tabelle bzw. die txt datei wird nicht gefunden.

Was hast du probiert? Das Verknüpfen der Textdatei per Assistent jedenfalls
nicht, denn da zeigst DU ja dem Assi welche Datei er verwenden soll.

Zitat:

woher weiss vba welches das erste ean feld ist ?

Weil nach dem Verknüpfen (wenn's dann funzt) eine Tabelle mit Spalten
vorliegt, genau wie in einer "normale" Tabelle. Diese Spalten musst du beim
Import (s.o.) benennen, und dann sucht .FindFirst den eingescannten
EAN in genau der Spalte die DU als die Spalte mit den EAN festgelegt hast.

gruss ekkehard

P.S. wenn du die Textdatei hier hochlädst oder mir per PN schickst würde ich
mir das anschauen.

__________________

--
S.M.I.²L.E.
Beaker s.a. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 30.05.2018, 08:03   #10
buliwyf
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo,

ich habe nun mal eine test.txt hochgeladen, zum besseren Verstaendnis des ganzen.
Wenn jemand noch Ideen hat, helfen kann?

Danke.

MFG
Angehängte Dateien
Dateityp: txt test.txt (1,2 KB, 6x aufgerufen)
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 30.05.2018, 10:17   #11
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Wenn jemand noch Ideen hat, helfen kann?

Vielleicht beginnst Du, vorhandene Vorschläge umzusetzen.

Zitat:

Verknüpfen der Textdatei:
Menu "Externe Daten" -> "Textdatei" -> dem Assistenten folgen.

Dazu braucht man kein VBA, nur etwas Verständnis.

Was Du im Sinne hast, ist pure Textverarbeitung. Die ist etwas anstrengender.
Die vorgelegte Textdatei ist offensichtlich eine Texttabelle. Wenn man die wie vorgeschlagen richtig verknüpft, kann man sie wie eine interne Accesstabelle auswerten.
Allerdings würde ich nicht per FindFirst arbeiten, sondern gleich das Recordset auf die gefilterte Tabelle erstellen (SQL-Suchen ist regelmäßig schneller als VBA-Suchen). Dabei sollte man auch berücksichtigen (beträfe das FindFirst ebenso), dass eine EAN nicht in der Textdatei gefunden werden könnte.

Als Ansatz für eine per Abfrage verknüpfte Textdatei (mit Importspezifikation MyImportSpezi) sowie der unmittelbaren Filterung auf eine EAN (müsste dann per Parameter oder Formularbezug flexibilisiert werden).
Der Pfad der Textdatei innerhalb der SQL-Anweisung müsste eigenen Gegebenheiten angepasst werden. Beim Auftreten verschiedener/wechselnder Textdateien hätte man auch hier die Möglichkeit der Flexibilisierung.
Angehängte Dateien
Dateityp: zip EAN.zip (24,4 KB, 2x aufgerufen)

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende

Geändert von ebs17 (30.05.2018 um 10:42 Uhr).
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 30.05.2018, 10:57   #12
buliwyf
Threadstarter Threadstarter
MOF User
MOF User
Standard

Man oh Meter da hab ich aber sowas von auf'em Schlauch gestanden lol

Dann hatte ich das nicht richtig gerafft mit dem Verknuepfen, also das gleiche als wenn ich ne ODBC....aja ok hab ich.

Ich habe noch die kommas in symikolons abgeaendert in der txt datei, sonst ging das gar nicht mit dem verknuepfen.
Nun funktioniert es, also vielen Dank Ekkehard !

LG Stef

Jetzt muss ich nur noch das mit der msgbox --> farblich hinbekommen.
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 30.05.2018, 12:20   #13
Beaker s.a.
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

Zitat:

Ich habe noch die kommas in symikolons abgeaendert in der txt datei, sonst ging das gar nicht mit dem verknuepfen.

Das ist natürlich besser. Obwohl ich es auch mit der Komma getrennten
Datei hinbekommen hatte. Dann kannst du aber auch den Feldbegrenzer (")
weglassen.
gruss ekkehard

__________________

--
S.M.I.²L.E.
Beaker s.a. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:05 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.