PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Übergabe an Access



inselhopper
09.01.2008, 18:51
Moin Forumgemeinde.

Ich hab da mal ne Frage. Ich kann mir vorstellen dass man die Daten, die man mit dem FMS dekodiert, an Access weitergeben kann. Die Frage ist jetzt wie so etwas geht, vor allem wenn es in eine geöffnete Datenbank geschrieben werden soll.

Diese Datenbank wird im Netzwerk (von mehreren PC gleichzeitig geöffnet) betrieben. In diesem Netzwerk befindet sich ein PC mit dem FMS-Prog.

Gruss vonner Nordsee
inselhopper


Ich hab es bis jetzt so geregelt, das es per Globaler Aktion in eine csv Datei reingeschrieben wird. Ist aber ja nicht so das was ich wollte.

paeddy
09.01.2008, 22:37
Hallo inselhopper,

ich hatte vor kurze Zeit das gleiche Problem. Wollte die FMS-32 Daten online und für mich einfach bearbeitbarzumachen speichern. Nach langer überlegung bin ich dann zum Entschluss gekommen dieses mit einer Mysql Datenbank aufzuziehen. Die Soft ist zwar noch inner Testphase aber erfüllt schon seinen Zweck. Da die Software über die Netzwerkschnittstelle mit FMS32 kommuniziert fallen alle Globalen meldungen weg.

Wenn einer dran interessiert ist kann er sich hier mal melden, suche noch tester und bin über jede idee und verbesserung dankbar.

mit freundlichen Grüßen

Paetrick

Ralf
10.01.2008, 05:27
Hallo,

das geht eigentlich sehr einfach. FMS32 im Server-Modus betreiben und in Access ein kleines VBA-Programm schreiben, das die Telegramme mit "WinSock" ausliest und in eine Tabelle schreibt. Das Telegrammformat ist im Web bei Heirue-Soft beschrieben.Die Daten sind ungefiltert!

Gruß Ralf

de010014
10.01.2008, 06:36
Hi,

wir nutzen www.BOS2WEB.de

Hier wird alles mit einem Agenten in eine SQL-Datenbank geschrieben.

Einfach mal auf deren Internetseite schauen.

Holger

inselhopper
10.01.2008, 08:55
@paeddy
Würde dein kleines Prog gerne ausprobieren.

@Ralf
Ist das VBA-Skript groß? Magst du es vielleicht hier posten oder mir schicken?


Gruß
inselhopper

paeddy
10.01.2008, 09:27
Hallo Inselhopper,

werde das Programm wenn ich heut abend ausser Uni komme mal hochladen

lg paeddy

felix000
10.01.2008, 10:07
Das Telegrammformat ist im Web bei Heirue-Soft beschrieben.

Wo genau??? Kannst du mal den Link posten oder mir die Beschreibung per PN schicken???

coastboy
10.01.2008, 15:38
@felix000

Die Beschreibung findest du im Download Bereich von FMS32.


Ist recht einfach, allerdings stört es mich, das die Filter etc. nicht wirken
und er alles roh übergibt.


MfG
coastboy

Ralf
10.01.2008, 17:38
Hallo,

@inselhopper
ich werde mal eine kleine Beispieldatenbank erstellen, die ich dann zur Verfügung stelle, dauert aber 1-2 Tage (ist Access 2000, neuer habe ich nicht).

@felix000
der Link ist http://www.heirue-soft.de/servicefms32pro/download/neues321.pdf
(ist kennwortgeschützt, also nur für registrierte User, deshalb werde ich hier auch keine Details posten).
Ist aber leicht zu durchschauen, da Klartext, Felder durch TAB (Chr$(9)) getrennt.


Gruß Ralf

paeddy
10.01.2008, 21:51
Hallo,

so habe mal meine kleines Programm zum speichern in eine Mysql Datenbank unten mit angefügt. Wer keine Mysql Datenbankanbindung hat kann das Programm auch als Client für FMS32 benutzen.

Würde mich freuen wenn ein bisschen Rückmeldung von euch kommen würde.

FMSQL v0.20 -> http://paeddy.pa.funpic.de/FMSQL/fmsql0.20.zip

Grüße

Paetrick

inselhopper
10.01.2008, 22:38
Freu mich schon auf deine Accessgeschichte. Ich komme zwar mit Access sehr gut klar, aber in VBA bin ich nicht allzu gut drin. Ich kenne nur noch einige Grundbefehle aus der C64-Basic Zeit, viele funktionieren da ja auch.


Das FMSQL probier ich gleich mal aus. Rückmeldung bekommst du selbstverständlich!


Gruss
inselhopper

felix000
11.01.2008, 11:16
@felix000
der Link ist http://www.heirue-soft.de/servicefms32pro/download/neues321.pdf
(ist kennwortgeschützt, also nur für registrierte User, deshalb werde ich hier auch keine Details posten).
Ist aber leicht zu durchschauen, da Klartext, Felder durch TAB (Chr$(9)) getrennt.

Danke, in der Uni hatte ich das Passwort für den Downloadbereich nicht zu Hand...

inselhopper
15.01.2008, 18:32
Moin,
ich hab mich mal selbst an der ACCESS Geschichte versucht, habs aber leider nicht hinbekommen.



FMS32 im Server-Modus betreiben und in Access ein kleines VBA-Programm schreiben, das die Telegramme mit "WinSock" ausliest und in eine Tabelle schreibt. Das Telegrammformat ist im Web bei Heirue-Soft beschrieben.

Kann es sein dass der WinSock nicht unter VBA funktioniert, sondern nur unter VB?

Ralf
16.01.2008, 05:35
Hallo,

ein Formular erstellen und ein Winsock-Steuerelement einfügen mit Namen "Winsock1"

Private Sub Form_Load()
Dim ServerIP As String
ServerIP = "Hier kommt der Name des Computers im Netz rein, auf dem FMS32 läuft"
Winsock1.Connect ServerIP, 9300
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Eingangstext As String
Winsock1.GetData Eingangstext 'Die Variable "Eingangstext" enthält jetzt das Telegramm

Dim Eingang() As String
Eingang() = Split(Eingangstext, Chr$(9))
'Die Variablen "Eingang(0)", "Eingang(1), "Eingang (...)" enthalten jetzt die einzelnen Felder

'Quittungen überspringen, wenn gewünscht
If Eingang(0) = "FMSTlg" Then
If Eingang(6) = "14" Or Eingang(6) = "15" Then
Exit Sub
End If
End If

'Jetzt werden die Felder in die Tabelle "Eingangstabelle" mit den Feldern

Eingangsdatum
Art
Richtung
Adresse
Status
Eingangsmeldung

schreiben

Set FMS = CurrentDb.OpenRecordset("Eingangstabelle")
FMS.AddNew

If Eingang(0) = "ZVEI" Then
FMS!Eingangsdatum = Now()
FMS!Art = "Z"
FMS!Richtung = "an"
FMS!Adresse = Eingang(1)
End If

If Eingang(0) = "FMSTlg" Then
FMS!Eingangsdatum = Now()
FMS!Art = Eingang(9)
FMS!Adresse = Eingang(1)
If Eingang(8) = "0" Then
FMS!Richtung = "von"
Else
FMS!Richtung = "an"
End If
FMS!Status = Eingang(6)
FMS!Eingangsmeldung = Eingang(13)
End If

FMS.Update
FMS.Close
Set FMS = Nothing

End Sub

POCSAC habe ich nicht berücksichtigt, das haben wir hier nicht, lässt sich aber leicht
einfügen.

Viel Erfolg beim Ausprobieren, bei weiteren Fragen gerne melden.

Gruß Ralf

inselhopper
16.01.2008, 08:35
Hallo Ralf,
danke für deinen Beitrag.

Das ist soweit alles verständlich und gut beschrieben. Aber eins habe ich noch


...
ein Formular erstellen und ein Winsock-Steuerelement einfügen mit Namen "Winsock1"
...

Ich hab mir dafür die VB6Runtimedateien runtergeladen, das Steuerelement erscheint auch bei Access, nur ..... ich kann es nicht benutzen. Woran kann das liegen?

Ralf
16.01.2008, 17:29
Hallo Inselhopper,

ich vermute mal, dass der Verweis auf Winsock nicht gesetzt ist:

Im Menü "Extras - Verweise"
Microsoft Winsock Control 6.0 (SP6) anhaken

Vorschlag zur Verbindungskontrolle:

Im Formular ein Bezeichnungsfeld mit dem Namen "Verbindung" einfügen
und folgenden Code:

Private Sub Winsock1_Close()
Verbindung.Caption = "- getrennt -"
Verbindung.BackColor = RGB(255, 0, 0)
End Sub

Private Sub Winsock1_Connect()
Verbindung.Caption = "- verbunden -"
Verbindung.BackColor = RGB(0, 255, 0)
End Sub

Nun sollte es klappen. Das in FMS32 Server-Modus und Port 9300
gesetzt sind, davon gehe ich mal aus.

Viel Erfolg und Grüße
Ralf

PS.
Für die Datenspeicherung muß der Verweis "Microsoft DAO 3.6 Object Library"
gesetzt sein!

inselhopper
16.01.2008, 20:15
Besten Dank!!

War alles richtig, nur hatte ich Winsock nicht "angehakt"


Manchmal sieht man den Wald vor lauter Bäumen nicht.

Ralf
17.01.2008, 02:53
Hallo,

wenn man nun die Einsatzmeldungen in Access hat, stellt man betrübt fest, das die
mühsam in FMS32 eingepflegten ZVEI- und Fahrzeugdaten nicht übertragen werden.

Also eine Tabelle "Fahrzeuge" mit den Feldern "Kennung", "Rufname" und "Bezeichnung"
anlegen und folgenden Code ausführen:

Dim Dateiname As String
Dim Dateilaenge As Long
Dim Satzlaenge As Long
Dim Saetzeanzahl As Long
Dim Dateiposition As Long
Dim Zaehler As Long
Dim Eingang As String
Dim FMS As DAO.Recordset

Dateiname = "C:\Programme\Heirue-Soft\FMS32-Pro\Fahrzeug.dat"
Satzlaenge = 515
Dateiposition = 1

Set FMS = CurrentDb.OpenRecordset("Fahrzeuge")

Open Dateiname For Binary As 1
Dateilaenge = LOF(1)
Saetzeanzahl = Dateilaenge / Satzlaenge

For Zaehler = 1 To Saetzeanzahl
Eingang = String(Satzlaenge, " ")
Get 1, Dateiposition, Eingang
Dateiposition = Dateiposition + Satzlaenge
FMS.AddNew
FMS!Kennung = Left$(Eingang, 8)
FMS!Rufname = Mid$(Eingang, 9, 30)
FMS!Bezeichnung = Mid$(Eingang, 39, 40)
FMS.Update
Next Zaehler

Close 1
FMS.Close
Set FMS = Nothing

Und eine Tabelle "Ton5" mit den Feldern "Tonfolge" und "Klartext"

Dim Dateiname As String
Dim Dateilaenge As Long
Dim Satzlaenge As Long
Dim Saetzeanzahl As Long
Dim Dateiposition As Long
Dim Zaehler As Long
Dim Eingang As String
Dim FMS As DAO.Recordset

Dateiname = "C:\Programme\Heirue-Soft\FMS32-Pro\TON5.dat"
Satzlaenge = 323
Dateiposition = 1

Set FMS = CurrentDb.OpenRecordset("Ton5")

Open Dateiname For Binary As 1
Dateilaenge = LOF(1)
Saetzeanzahl = Dateilaenge / Satzlaenge

For Zaehler = 1 To Saetzeanzahl
Eingang = String(Satzlaenge, " ")
Get 1, Dateiposition, Eingang
Dateiposition = Dateiposition + Satzlaenge
If Left$(Eingang, 1) < "9" Then
FMS.AddNew
FMS!Tonfolge = Left$(Eingang, 5)
FMS!Klartext = Mid$(Eingang, 6, 44)
FMS.Update
End If
Next Zaehler

Close 1
FMS.Close
Set FMS = Nothing

Die Originaldaten vorher sichern!!!

Jetzt die Tabellen verknüpfen und mit einer Abfrage in einem
Formular anzeigen.

Gruß Ralf

PS.

Heirue-Soft hatte vor Jahren eine Access-Version von FMS32 projektiert.
Es gab auch eine funktionsfähige Demo-Version. Wurde aber nicht zu Ende
gebracht, obwohl sich viele Anwender das gewünscht hatten. Herr Jahn
befürchtete mangelnde Performance (bei den damaligen PC's und der
damaligen AccessVersion sicher richtig).

inselhopper
17.01.2008, 08:27
Ich habe das FMS Telegramm noch etwas aufgeteilt, so dass der BOS Kenner, Landeskenner, Ortskenner und der Rufname jeweils in einem Feld stehen:


FMS.AddNew
If Eingang(0) = "FMSTlg" Then
FMS!Eingangsdatum = Now()
FMS!BOS = left(Eingang(1), 1)
FMS!Land = Mid(Eingang(1), 2, 1)
FMS!ort = Mid(Eingang(1), 3, 2)
FMS!Fahrzeug = Right(Eingang(1), 4)
If Eingang(8) = "0" Then
FMS!Richtung = "von"
Else
FMS!Richtung = "an"
End If

Desweiteren habe ich mir überlegt dass es doch toll wäre, wenn man anstatt des BOS-Kenners "6" den Text "Florian" oder "FF" in der Tabelle stehen hat. Dafür habe ich eine andere Tabelle erstellt mit den Spalten "Kenner" und "BOS", welche die gesamten BOS-Kenner mit dem dazugehörigen Text enthält.
Das gleiche habe ich mit dem Ortskenner(Landkreiskenner) gemacht.


FMS.AddNew
If Eingang(0) = "FMSTlg" Then
FMS!Eingangsdatum = Now()
BOS = Left(Eingang(1), 1)
ort = Left(Eingang(1), 4)
FMS!BOS = DLookup("feld_BOS_in_tabelle_bos-kenn", "tabelle_bos-kenn", "Kenner ='" & BOS & "'")
FMS!Land = Mid(Eingang(1), 2, 1)
FMS!ort = DLookup("feld_ort_in_tabelle_ort", "tabelle_ort", "Kenner ='" & ort & "'")
FMS!Fahrzeug = Right(Eingang(1), 4)
If Eingang(8) = "0" Then
FMS!Richtung = "von"
Else
FMS!Richtung = "an"
End If
FMS!Status = Eingang(6)

Ralf
17.01.2008, 11:27
Hallo,

wenn das Datentelegram ein FMS-Telegramm enthält, würde ich dieses auch noch
mit SPLIT in einzelne Felder zerlegen und wegschreiben. Ist leichter lesbar.

Aus dem gewonnenen Ort und Strasse eine URL bauen nach folgendem Muster:

http://maps.google.de/maps?f=q&hl=de&geocode=&time=&date=&ttype=&q=Strasse,+Ort

und auf Knopfdruck den Einsatzort in der Karte sehen! ! !

Wenn das Telegramm Geodaten (TRN...................) enthält, kann man auch daraus
eine URL bauen, dass Thema wurde schon hier im Forum behandelt. Auch zum
Thema Fahrzeugposition wurde hier schon geschrieben.

Gruss Ralf

PS. die URL darf keine Umlaute enthalten, also "ü" in "ue" umwandeln oder statt
"ü" "%3F" einsetzen.

Christian112
19.01.2008, 13:32
Hallo,

Wenn ich den Text so in Visual Basic eingebe bekomme ich die Fehlermeldung

"Fehler beim Kompielieren: Sub oder Function nicht definiert"

Woran kann das liegen?



Hier mal mein Code wie ich ihn eingegeben habe:


Private Sub Form_Load()
Dim ServerIP As String
ServerIP = "localhost"
Winsock1.Connect ServerIP, 9300
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Eingangstext As String
Winsock1.GetData Eingangstext 'Die Variable "Eingangstext" enthält jetzt das Telegramm

Dim Eingang() As String
Eingang() = Split(Eingangstext, Chr$(9))
'Die Variablen "Eingang(0)", "Eingang(1), "Eingang (...)" enthalten jetzt die einzelnen Felder

'Quittungen überspringen, wenn gewünscht
If Eingang(0) = "FMSTlg" Then
If Eingang(6) = "14" Or Eingang(6) = "15" Then
Exit Sub
End If
End If

'Jetzt werden die Felder in die Tabelle "Eingangstabelle" mit den Feldern

Eingangsdatum
Art
Richtung
Adresse
Status
Eingangsmeldung

schreiben

Set FMS = CurrentDb.OpenRecordset("Eingangstabelle")
FMS.AddNew

If Eingang(0) = "ZVEI" Then
FMS!Eingangsdatum = Now()
FMS!Art = "Z"
FMS!Richtung = "an"
FMS!Adresse = Eingang(1)
End If

If Eingang(0) = "FMSTlg" Then
FMS!Eingangsdatum = Now()
FMS!Art = Eingang(9)
FMS!Adresse = Eingang(1)
If Eingang(8) = "0" Then
FMS!Richtung = "von"
Else
FMS!Richtung = "an"
End If
FMS!Status = Eingang(6)
FMS!Eingangsmeldung = Eingang(13)
End If

FMS.Update
FMS.Close
Set FMS = Nothing


End Sub


MFG
Christian

inselhopper
19.01.2008, 14:13
Moin.

Hast du das ActiveX Steuerelement im Formular eingebaut und es auch den Namen "Winsock1" gegeben?

Christian112
19.01.2008, 14:31
also ich habe über Projekt>>Komponenten das Microsoft Winsock Control eingefügt.
Das funktioniert soweit auch ganz gut.
Wenn ich den Code mal nur so weit eingebe...

Private Sub Form_Load()
Dim ServerIP As String
ServerIP = "localhost"
Winsock1.Connect ServerIP, 9300
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Eingangstext As String
Winsock1.GetData Eingangstext 'Die Variable "Eingangstext" enthält jetzt das Telegramm

Dim Eingang() As String
Eingang() = Split(Eingangstext, Chr$(9))
'Die Variablen "Eingang(0)", "Eingang(1), "Eingang (...)" enthalten jetzt die einzelnen Felder

End Sub



...kann ich die Variable "Eingangstext" ausgeben und erhallte das komplette Telegramm.

Mit dieser Split Funktion funktioniert es nur leider nicht...
Ick kann z.B. Die Variable "Eingang(0)" ausgeben und bekomme die Art des Telegramm also z.b. "FMSTlg".
Mit der Variable "Eingang(1) funktioniert es nicht.
Ich bekomme die Fehlermeldung "Index auserhalb des Gültigen Bereich"

Hab ich Irgendetwas falsch gemacht oder vergessen?

Mfg

inselhopper
19.01.2008, 14:44
Müsste eigentlich gehen.

Wie gibst du denn Eingang(*) aus?

Christian112
19.01.2008, 14:45
hab es einfach nur mal zum test in einer MsgBox ausgegeben.

inselhopper
19.01.2008, 14:50
poste mal den genauen Code

Christian112
19.01.2008, 15:01
Also so funktioniert es:

Private Sub Form_Load()
Dim ServerIP As String
ServerIP = "localhost"
Winsock1.Connect ServerIP, 9300
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Eingangstext As String
Winsock1.GetData Eingangstext 'Die Variable "Eingangstext" enthält jetzt das Telegramm

Dim Eingang() As String
Eingang() = Split(Eingangstext, Chr$(9))
'Die Variablen "Eingang(0)", "Eingang(1), "Eingang (...)" enthalten jetzt die einzelnen Felder

MsgBox Eingang(0)

End Sub


Ich bekomme z.B. bei einem Status ein Fenster geöfnet mit dem Inhalt "FMSTlg"

--------------------------------------------------------------------------------------
So funktioniert es nicht:
Private Sub Form_Load()
Dim ServerIP As String
ServerIP = "localhost"
Winsock1.Connect ServerIP, 9300
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Eingangstext As String
Winsock1.GetData Eingangstext 'Die Variable "Eingangstext" enthält jetzt das Telegramm

Dim Eingang() As String
Eingang() = Split(Eingangstext, Chr$(9))
'Die Variablen "Eingang(0)", "Eingang(1), "Eingang (...)" enthalten jetzt die einzelnen Felder

MsgBox Eingang(1)

End Sub


Also mit "Eingang(1) bekomme ich schon eine Fehlermeldung wenn ich das "Programm" starte.

Eigentlich könnte es doch nur ein Fehler beim Spliten sein oder???
Bin was sowas angeht auch nicht so der Experte... bin halt nur son bischen am üben.
Mein Ziel ist es ein kleines Programm zu schreiben das mir die Alarmierungen(5-Ton), Status und die FMS Leitstellentexte in eine MySql Datenbank schreibt.
Also im prinzip fast so etwas wie das Programm das man hier in diesem Thread schon runterladen kann.

Mfg

inselhopper
19.01.2008, 20:00
Hmm. Warum nimmst du denn das Prog nicht was es hier im Thema als Download gibt? Es funktioniert! Nur halt noch nicht mit 5 Ton Alarmierung (kommt sicher noch)

Aber trotz alledem müsste es klappen. Ein Fehler im Split ist es nicht, da ich genau so das Telegramm aufschlüssel.

Was zeigt der denn an wenn der Debugger läuft und du mit dem Cursor über Eingang(1) gehst?

Ralf
19.01.2008, 22:12
Hallo,

Du hast geschrieben, dass Du Winsock über "Projekt>>Komponenten eingefügt hast.
Das läst vermuten, dass Du nicht mit Access sondern mit VB 6 arbeitest.

Dann musst Du bei

Eingang() = Split(Eingangstext, Chr$(9))

das Klammerpaar hinter Eingang weglassen, also

Eingang = Split(Eingangstext, Chr$(9))

Bei

Dim Eingang() As String

muss es aber stehen bleiben!

Gruss Ralf

Christian112
20.01.2008, 01:29
Hallo,

Ja ich benutze VisualBasic 6.
Leider funktioniert es auch nicht wenn ich das Klammernpaar wegnehme.

Es könnte eig auch wie gesagt nur daran liegen also beim Spliten muss da irgendwas schief gehen...

Wenn ich z.B die Variable "Eingangstext" ausgebe, bekomme ich ja gleich als ersten von FMS32 den Text:

#Verbindung zu FMS32-Server erfolgreich hergestellt!
#Verbunden mit Anschluss: 1
AN1

Mit der Variable "Eingang(0)" bekomme ich jetzt den Inhalt "#Verbindung", mit der Eingang(1) bekomme ich "zu", usw...

Wenn jetzt allerdings ein richtiger Status kommt, bekomme ich die Fehlermeldung:
Laufzeitfehler 9:
Index liegt außerhalb des gültigen Bereich.

Woran könnte es noch liegen?

Gruß Christian

Ralf
20.01.2008, 04:05
Hallo Christian,

Eingang = Split(Eingangstext, Chr$(9)) splitted bei jedem Vorkommen des TAB-Zeichens
CHR$(9).

In

#Verbindung zu FMS32-Server erfolgreich hergestellt!
#Verbunden mit Anschluss: 1
AN1

kommt TAB nicht vor, also steht der gesamte Text in Eingang(0). Wenn Du versuchst,
auf Eingang(1) zuzugreifen, kommt die Meldung "Index außerhalb des gültigen Bereichs",
weil Eingang (1) ja gar nicht angelegt wurde.

------
Mit der Variable "Eingang(0)" bekomme ich jetzt den Inhalt "#Verbindung", mit der Eingang(1) bekomme ich "zu", usw...
------

Das kann eigentlich nicht angehen, es sei den, Du hast Chr$(9) in CHR$(32) geändert.

Dann funktionieren aber die richtigen Meldungen nicht mehr.

Lösung:

Chr$(9) muss bleiben.

Nach

Eingangstext=...............

folgendes einfügen:

If Left(Eingangstext, 1) = "#" Then
Exit Sub
End If

Damit wird die Server-Meldung übersprungen und es geht mit der
ersten richtigen Meldung los.

Nun sollte es klappen.

Gru? Ralf

Jules
20.01.2008, 04:15
Hallo! Ich arbeite (schon länger) mit folgendem Code (etwas abgeändert) in VB6...erfolgreich. Einfach mal kopieren und schauen ob`s klappt ;)

:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim strData As String
Winsock1.GetData strData
FMSEingang strData
End Sub

Public Sub FMSEingang(ByVal strData As String)

Dim strMultiString() As String
Dim strSimple() As String
Dim I As Integer

If strData <> "" Then
strMultiString = Split(strData, Chr$(13) & Chr$(10)) 'Warum? Falls 2 Telegramme auf einmal gesendet werden, wird keins "verschluckt"!

For I = 0 To UBound(strMultiString)

If strMultiString(I) <> "" Then
strSimple = Split(strMultiString(I), Chr$(9))

Select Case strSimple(0)
Case "FMSTlg"
MsgBox strSimple(1) & "_" & strSimple(6) & "_" & strSimple(8) 'Hier würde FMS-Kennung_Status_Richtung stehen!
Case "POC"
MsgBox strSimple(1) 'Hier würde der RIC stehen!
Case "ZVEI"
MsgBox strSimple(1) 'Hier würde die 5-Tonfolge stehen
End Select

End If

Next I

End If
End Sub

Christian112
20.01.2008, 10:08
@Ralf

richtig ich bin ein bischen durcheinander gekommen...
aber so funktioniert es jetzt, vielen Dank.

Gruß Christian

DonnerGott
25.01.2009, 20:12
Hallo,

kann es mal bitte jemand online stellen?
ich würde es auch gerne mal testen.

mfg

inselhopper
25.03.2009, 21:02
Hallo Ralf,
danke für deinen Beitrag.

Das ist soweit alles verständlich und gut beschrieben. Aber eins habe ich noch



Ich hab mir dafür die VB6Runtimedateien runtergeladen, das Steuerelement erscheint auch bei Access, nur ..... ich kann es nicht benutzen. Woran kann das liegen?

Das Thema ist ja schon etwas älter und ich habe seit dem auch nicht mehr viel gearbeitet. Deshalb hab ich nun auch keine Ahnung wieso es nicht funktioniert. Ich habe trotz angehaktem Winsock Steuerelements einen Laufzeitfehler 438. Anscheinend kennt er den Winsock Befehl nicht.

Woran kann es liegen?

PGroby
23.04.2009, 12:59
Gibts da auch ne Möglichkeit für Leute die keine ahnung von sowas haben das tool / etc zu nutzen???

MfG PGroby

rescue_90
16.07.2009, 23:47
Sorry, auch wenn ich jetzt ein altes Thema wieder ausgrabe, aber kann mir mal jemand einen fertigen Quelltext geben und mir dazusagen welche elemente ich dafür brauche...? Dann würde ich mir das selber zurechtbasteln, aber so bin ich ein wenig verwirrt.... Wäre nett. Danke

DonnerGott
22.11.2009, 22:19
Hallo,

Hat das schon jemand in VB2008 gemacht und möchte einen vereinfachten Code online stellen?

Ich benötige nur den Teil das ich eine Verbindung herstellen kann und etwas aus dem FMS32 in der ListBox stehen habe, um den Rest kümmere ich mich dann selbst.

Danke

mfg

PGroby
22.11.2009, 22:57
Suche auch einen den Quelltext wenn den jemand fertig hat wäre nett wenn ihn mir jemand mit ner kurzen anleitung schickt

DonnerGott
24.11.2009, 07:27
hat denn keiner eine idee?

:-(

Ralf
24.11.2009, 12:00
Hallo,

hier findet man ein Beispiel einer Socket-Anbindung in NET:

http://www.java2s.com/Tutorial/VB/0400__Socket-Network/UsingAsyncSocketClient.htm

Gruß Ralf

PGroby
24.11.2009, 16:06
ICh habe da ja keine ahnung von deswegen brauche ich ja einen der mir dabei helfen kann

gruß bastian

DonnerGott
24.11.2009, 16:20
das problem habe ich auch und hoffe das uns jemand helfen kann.

mfg

PGroby
24.11.2009, 17:49
hoffe doch wo bei dem thread doch so viele geschrieben haben

Ralf
24.11.2009, 20:57
Hallo,

anliegend ein Primitiv-Client in VB 2008.

FMS32 muß im Servermodus gestarted sein (127.0.0.1:9300).

Gruß Ralf

PS: Ich habe nicht vor, hier mehr zu machen, wie Ihr den Inhalt der Textbox weiter verarbeitet, müßt Ihr selbst sehen.

PGroby
24.11.2009, 23:11
mien ja nur weil ich da garkeinen plan von habe aber sdchon mal danke für den socket

Mumpitz
30.11.2009, 10:32
Hallo,

ich bin neu bei euch im Forum und muss mich als erstes schon einmal bedanken, viele Fragen die ich hatte konnten mir schon durch´s stöbern und suchen beantwortet werden.

Nun bin ich dabei mein Alarmierungssystem zu erweitern, derzeit wird über einen eigenen Mailserver eine Mail bei Alarmierung versendet und über eine angeschlossene UMTS Karte eine SMS an bestimmte Empfänger versendet.

Nun möchte ich die ganzen Aktivitäten in eine Datenbank speichern. Funktionieren würde das ganze wohl über eine Socketverbindung. Wie ich Daten in eine Datenbank bekomme ist kein Problem, das Problem liegt eher am "Wie komme ich an die Daten!?"...

Wenn ich eine Socketverbindung auf den FMS32-Pro Server über den Port 9300 öffne bekomme ich immer folgendes zurück:
"#Verbindung zu FMS32-Server erfolgreich hergestellt! #Verbunden mit Anschluss: 1 AN1 "

Jetzt stellen sich mir eine paar Fragen und hoffe das sie mir jemand von euch beantworten kann:
- Wie komme ich nun an die einzelnen Meldungen welche ausgegeben werden!? Als eine Alarmierung lief habe ich wieder die Ausgabe kontrolliert und ich bekam trotzdem nur den Verbindungsnachweiß von oben.
- Wann und wie komme ich an die Daten ran!?

Das kleine VB Programm von Ralf habe ich schon ausprobiert, leider hängt sich dieses immer auf, bzw. zeigt mir keine Daten außer dem Verbindungsnachweiß an.

Gruß Mumpitz

Ralf
30.11.2009, 22:21
@Mumpitz

Was hast Du denn ausprobiert, Beitrag #14 oder #45?

Welche Programmiersprache?

Beitrag #45 habe ich aus dem MSDN entnommen,das hilft auch Dir weiter.

Gruß Ralf

Mumpitz
01.12.2009, 08:57
Hallo Ralf,

ich verwende Visual Basic und habe mir das Socket Script von Beitrag 45 heruntergeladen und ausprobiert. Sendet der Socketserver automatisch immer etws oder muss ich es immer wieder abfragen!?

Gruß Mumpitz

DonnerGott
01.12.2009, 15:03
hallo zusammen,

ich habe mich an beitrag 45 versucht, steige aber nicht wirklich damit durch.

mfg

Ralf
01.12.2009, 19:33
@Mumpitz

Hallo,

der Server sendet immer weiter, aber Du mußt den Eingang abholen und verarbeiten.

In VB6 oder VBA:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Eingangstext As String
Winsock1.GetData Eingangstext 'Die Variable "Eingangstext" enthält jetzt das Telegramm

Wie das in VB.NET geht, verrät MSDN, ich habe keinen fertigen Code und werde auch keinen erstellen mangels Lust, Bedarf, Zeit.

Gruß Ralf

PS. Der ganze Ablauf eines solchen Vorhabens ist in diesem Thread hinreichend beschrieben, die Umsetzung in VB.NET sollte auch einem Programmieranfänger gelingen.

DonnerGott
01.12.2009, 20:45
@ralf,

habe es ja eigentlich auch soweit hinbekommen, allerdings bekomme ich nur bei klick auf einen butte die meldung in eine listbox angezeigt, das bekomme ich einfach nicht hin das es automatisch in die listbox geht.

hast du da evtl. eine lösung für mich?

mfg

Ralf
02.12.2009, 13:07
Hallo,

schaut mal diesen Link:

http://forum.vb-paradise.de/allgemeines/tipps-tricks-und-tutorials/internet-lan/16242-ausfuehrliches-tcp-und-udp-tutorial/#post94565

Besser kann man das nicht erklären.

Gruß Ralf

jugendsani
14.01.2010, 20:31
Hey zusammen,

hat das jemand schon mal mit Access 2008 probiert?

Gruß
jugendsani