Forums Neueste Beiträge
 

Daten über serielle Schnittstelle in DB schreiben

11/02/2009 - 15:33 von Michael Alexander | Report spam
Hallo!

Ich erfasse Daten mittels eines Barcodescanners über die serielle
Schnittstelle und möchte diese Daten sofort in eine Access-Tabelle
schreiben.

Wichtig!!:
Noch dazu soll dei VB-Anwendung im Hintergrund ablaufen, d.h. sie darf gar
nicht den Fokus bekommen und soll trotzdem die Daten speichern.

Wie löse ich das?

Ich habe derzeit folgende Testlösung schon gemacht, sie funktioniert aber
nur mit einem Printfile und nur wenn das frm den Fokus hat!


Private Sub cmdConnect_Click() 'Öffnet Port und Printfile

'Find and Connect to the selected serial port
Dim i As Integer
For i = 1 To 4
If optComPort(i - 1).Value = True Then
ComPort.CommPort = i
Exit For 'Skip the rest
End If
Next

If ComPort.PortOpen = True Then ComPort.PortOpen = False 'Close port if
open
ComPort.PortOpen = True 'Open com port

'Set status
lblStatus = "Connected..."
Open "D:\test.txt" For Output As #1

'Setup dis/connect buttons
cmdConnect.Enabled = False
cmdDisconnect.Enabled = True

End Sub
*******************************
Private Sub ComPort_OnComm() 'Hier erfasse ich die DAten

'If we have recieved data though the com port, continue
If ComPort.CommEvent <> comEvReceive Then Exit Sub

'Get the input character
sInTemp = ComPort.Input

'Add the input charater to the barcode buffer
sBarcodeTemp = sBarcodeTemp & sInTemp

'If finished reading the barcode
If Right$(sBarcodeTemp, 2) = vbNewLine Then

'Wedge emulation with carrage return
If chkWedge Then SendKeys sBarcodeTemp

'Strip the barcode of the carrage return
sBarcodeTemp = Left$(sBarcodeTemp, Len(sBarcodeTemp) - 2)

'Wedge emulation without carrage return
'If chkWedge Then SendKeys sBarcodeTemp

'Add barcode to the text box
txtBarcode = sBarcodeTemp & vbTab & Now()

Print #1, txtBarcode & vbCrLf
'Daten werden in den File geschrieben. Eigentlich sollten hier die Daten in
die Access-Tabelle gechreiben werden!

'Add to the top of the list box
lstBarcodes.AddItem sBarcodeTemp, 0

'Clear barcode temp
sBarcodeTemp = ""

'Set status
lblStatus = "Barcode Scanned"

End If

End Sub

*****************************************
Private Sub cmdDisconnect_Click() 'Am Ende der Erfassung wird der File
wieder geschlossen

'Disconnect from serial port
If ComPort.PortOpen = True Then ComPort.PortOpen = False

'Set status
lblStatus = "Disconected..."
Close #1 ' Datei schließen.
'Setup dis/connect buttons
cmdDisconnect.Enabled = False
cmdConnect.Enabled = True

End Sub
*****************************

Bitte um Eure Hilfe!

Danke
Michael
 

Lesen sie die antworten

#1 Wolfgang Bußmann
12/02/2009 - 17:38 | Warnen spam
Hallo Michael,

auf die "Schnelle" habe ich folgenden Links gefunden, in dem dir die
Erstellung einer Access Datenbank beschrieben wird. Erstellen musst du
sie schon selber. ;-)

ADO
http://www.vb-fun.de/cgi-bin/loadfr...0322.shtml

DAO
http://www.vb-fun.de/cgi-bin/loadfr...0322.shtml

oder auch:
http://www.activevb.de/tipps/vb6tip...p0580.html

Achtung: Alle Links wurden von mir nicht getestet!

Wichtig!!:
Noch dazu soll dei VB-Anwendung im Hintergrund ablaufen, d.h. sie darf gar
nicht den Fokus bekommen und soll trotzdem die Daten speichern.



Hier verstehe ich noch nicht so ganz dein Problem. Ich habe mir
ebenfalls ein Programm für die serielle Schnittstelle geschrieben,
welches mir im Hintergrund alle Eingànge protokolliert und, falls
erforderlich, dementsprechende Daten ausgibt.

Nach dem Start dieses Programms kann ich alle anderen Programme öffnen
und damit arbeiten, ohne mein "Protokollprogramm" zu stören. Das
Programm wurde ja geöffnet und làuft im Hintergrund weiter.

Vielleicht solltest du hierzu weitere Details "offenbaren".

Gruß Wolfgang

Ähnliche fragen