[Gelöst] Zugriff auf FB Anrufliste mit Microsoft Access

oh mann, das wird mir echt zu hoch ... ich scheine mir da was angefangen zu haben, was mich einfach übersteigt :-(
von xml hab´ ich gleich gar keine ahnung. eine csv einlesen würde ich ja noch können aber ich weiß ja nicht mal, wo der code die hinspeichert.
wo kann ich denn die csv-datei abgreifen, um sie einlesen zu können?

Sorry, wenn ich euch mit meinem anfängerzeugs langweile :-(
 
Hallo,

Ist mir auch egal ob CSV oder XML hatte es nur gesagt weil es Access 2010 kann.

Hier:

Code:
'
Public Function FB_Anrufliste_CSV_XML(sHost As String, sPassword As String, nCSVorXML As Long) As String
'
 Dim sSID As String
 Dim sMode As String, sLink As String, sFormdata As String
 Dim sRetHTTPTransferText As String
 Dim nRet As Long
'
 If Trim$(sHost) = "" Or Trim$(sPassword) = "" Then Exit Function
'
 nRet = FFSP_Login_Sid(sHost, sPassword, sSID)
'
 If nRet = 1 Then
'
  sMode = "POST "
  sLink = "http://" + sHost + "/cgi-bin/webcm"
  sFormdata = "sid=" + sSID + "&" + "getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=foncalls" ' FRITZ!Box_Anrufliste.csv FRITZ!Box
  sRetHTTPTransferText = HTTPTransferRT(sMode, sLink, sFormdata)
'
  If sRetHTTPTransferText <> "" Then
'
   If nCSVorXML = 1 Then ' wenn 1 hier nCSVorXML = 1 wird die foncallsdaten.xml zurückgegeben
    sFormdata = "sid=" + sSID + "&" + "getpage=../html/de/home/foncallsdaten.xml" ' foncallsdaten.xml XML Anrufliste FRITZ!Box
   Else
    sFormdata = "sid=" + sSID + "&" + "getpage=../html/de/FRITZ!Box_Anrufliste.csv" ' FRITZ!Box_Anrufliste.csv FRITZ!Box
   End If
'
   sRetHTTPTransferRT = HTTPTransferRT(sMode, sLink, sFormdata)
'
   If sRetHTTPTransferText <> "" Then FB_Anrufliste_CSV_XML = sRetHTTPTransferRT
'
  End If
'
  nRet = FFSP_Logout_Sid(sHost, sSID)
'
 End If
'
End Function
'

mit dem Code sollte es wohl kein Problem sein die Anrufliste aus der Box zu Lesen,
hier: sFB_Anrufliste_CSV = FB_Anrufliste_CSV_XML(sHost, sPassword, 0)
oder sFB_Anrufliste_XML = FB_Anrufliste_CSV_XML(sHost, sPassword, 1)
sHost = IP der Box, sPassword = Passwort der Box

Gruß Erwin
 
Hi Erwin,

wo liegt denn die CSV physikalisch wo wird sie hingeschrieben?

VG Jörg
 
Nirgendwo!

Edit: Wie Erwin bereits aufzeigte:

Du definierst eine Variable

Dim sFB_Anrufliste_CSV As String
sFB_Anrufliste_CSV = FB_Anrufliste_CSV_XML(sHost, sPassword, 0)

sFB_Anrufliste_CSV enthält danach die csv anrufliste.
 
Zuletzt bearbeitet:
Also erst mal danke, dass Ihr echt Geduld mitbringt.

Ich hab das jetzt mal so gemacht:

1.) Den ganzen bisherigen Code aus dem Word-Form in ein VBA-Modul in Access kopiert
2.) Folgenden Code einfach nach der letzten Zeile im Modul eingefügt bzw. geschrieben

Public Function FB_Anrufliste_CSV_XML(sHost As String, sPassword As String, nCSVorXML As Long) As String
'
Dim sSID As String
Dim sMode As String, sLink As String, sFormdata As String
Dim sRetHTTPTransferText As String
Dim nRet As Long
'
If Trim$(sHost) = "" Or Trim$(sPassword) = "" Then Exit Function
'
nRet = FFSP_Login_Sid(sHost, sPassword, sSID)
'
If nRet = 1 Then
'
sMode = "POST "
sLink = "http://" + sHost + "/cgi-bin/webcm"
sFormdata = "sid=" + sSID + "&" + "getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=foncalls" ' FRITZ!Box_Anrufliste.csv FRITZ!Box
sRetHTTPTransferText = HTTPTransferRT(sMode, sLink, sFormdata)
'
If sRetHTTPTransferText <> "" Then
'
If nCSVorXML = 1 Then ' wenn 1 hier nCSVorXML = 1 wird die foncallsdaten.xml zurückgegeben
sFormdata = "sid=" + sSID + "&" + "getpage=../html/de/home/foncallsdaten.xml" ' foncallsdaten.xml XML Anrufliste FRITZ!Box
Else
sFormdata = "sid=" + sSID + "&" + "getpage=../html/de/FRITZ!Box_Anrufliste.csv" ' FRITZ!Box_Anrufliste.csv FRITZ!Box
End If
'
sRetHTTPTransferRT = HTTPTransferRT(sMode, sLink, sFormdata)
'
If sRetHTTPTransferText <> "" Then FB_Anrufliste_CSV_XML = sRetHTTPTransferRT
'
End If
'
nRet = FFSP_Logout_Sid(sHost, sSID)
'
End If
'
End Function


Public Function fktFBALauslesen()

Dim sFBAnruflCSV As String
Dim sFBAnruflXML As String
Dim sHost As String
Dim sPassword As String

Dim dbs As Database
Set dbs = CurrentDb

dbs.Execute "CREATE TABLE tblAnrufliste " _
& "(Anrufart CHAR, Datum DATE, Uhrzeit TIME, Name CHAR, Telefonnr CHAR, " _
& "Endgeraet CHAR, EndgeraetRufNr CHAR, Dauer TIME);"

dbs.Close


sHost = sFritzBoxIP
sPassword = sFritzBoxPWD

sFBAnruflCSV = FB_Anrufliste_CSV_XML(sHost, sPassword, 0) 'Variable enthält nun die Anrufliste im CSV
'sFBAnruflXML = FB_Anrufliste_CSV_XML(sHost, sPassword, 1) 'Variable enthält nun die Anrufliste XML

DoCmd.TransferText acImportDelim, "", "tblAnrufliste", sFBAnruflCSV, True, ""

End Function


Müsste es jetzt so funktionieren oder hab´ ich noch immer was nicht verstanden?
 
KORREKTUR:

Ich habe nun mal die Daten, die ausgelesen werden, manuell in einem physischen CSV-File gespeichert.
Dann habe ich dieses manuell in die Tabelle importiert und die Import Spezifikationen unter dem Namen "ImpSpezAnrListe" gespeichert.
Jetzt müsste es doch dann zukünftig mit dieser Zeile funktionieren, oder?

DoCmd.TransferText acImportDelim, "ImpSpezAnrListe", "tblAnrufliste", sFBAnruflCSV, False
 
Ich hab es ausprobiert, leider klappt es nicht.
Also was klappt ist, dass die Anrufliste ausgelesen wird.
Ich kann mir die Daten auch mit debug.print ins Direktfenster schreiben lassen und sie auch in die Zwischenablage senden.

Jetzt muss ich noch einen Weg finden, wie ich die Daten aus der Variabel in meine Tabelle geschrieben bekomme.
Aber das wird dann eher ein Access Problem, die eigentlich Aufgabe ist Dank Eurer Hilfe wunderbar gelungen, herzlichen Dank.

Den Rest krieg ich schon noch hin, wenn gleich ich noch nicht wirklich weiß wie aber die Access Hilfe und Google werden mir bestimmt ein wenig helfen.

Nochmals herzlichen Dank und falls Ihr Euch auch in ACC so gut auskennt und ein CodeSchnipsel parat habt, gerne
Andernfalls ein schönes Wochenende!

VG Jörg
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.