Hallo zusammen,
gleich vorab: Die Überschrift ist nicht die beste, aber mir fiel leider keine Bessere ein. Daher beschreibe ich gleich mal, was ich suche.
Eine Access 2007 / SAP Leseschnittstelle soll es werden. Wie ich SAP Daten lesen kann weis ich bereits.
Nun wollte ich eine Funktion schreiben, der ich die Geschäftspartnernr. übergebe und die Funktion soll mir die SAP-Daten ermitteln und in ein Array schreiben, welches ich dann an geeigneter Stelle auslesen kann.
Dieses Array sollte in etwa so aussehen
GPAdresse.Vorname, GPAdresse.Nachname, GPAdresse.Straße, GPAdresse, Hausnr usw.
Den jeweiligen Formularfeldern würde ich dann wie folgt die Werte zuweisen:
me.Straße = GPAdresse.Straße usw.
Wie muss ich ein solches Array aufbauen?
Für jede Hilfe bin ich sehr dankbar.
Volker
Hallo,
ZitatWie muss ich ein solches Array aufbauen?
am Besten keines verwenden, wozu auch? Ein Array ist für eine Datenbank im Regelfall die schlechteste Lösung. Schreibe die Daten in eine Tabelle und verwende die Tabelle als Datenherkunft für das Formular. Zum Auslesen benötigst Du dann keinen Buchstaben Code.
Hallo MzKlMu,
vielen Dank für die schnelle Antwort.
Habe gerade aber schon selbst eine Lösung gefunden.
Option Compare Database
Public GP_Nr As Double
Public Type GP_Adresse
Vorname As String
Nachname As String
Strasse As String
Hausnr As String
PLZ As String
Ort As String
End Type
Public Function GPAdresse_finden(GPNr As Double)
' Die GP-Nr. auf Länge prüfen bzw. auf 10 Stellen ändern
If Left(GPNr, 2) = "10" And Len(GPNr) = 8 Then
Else
MsgBox "Die Geschäftspartnernr. ist leider falsch. " & vbCrLf & vbCrLf & "- Sie muß mit 10 anfangen" & vbCrLf & "- Sie muß 8 Stellen beinhalten" & vbCrLf & "- Sie darf nur aus Zahlen bestehen" & vbCrLf & vbCrLf & "Bitte überprüfen Sie Ihre Eingabe und versuchen Sie es dann erneut"
Exit Function
End If
' Die Übergebene GPNr wird der globalen Variable GP_Nr zugewiesen, damit dann die Funktion GPAdresse die GPNr auch noch hat bzw. darüber die SAP Daten lesen kann.
GP_Nr = GPNr
End Function
Public Function GPAdresse() As GP_Adresse
' Hier werden die SAP Daten gelesen und wie unten beispielweise zugewiesen.
' Diese Zuweisung ist natürlich nur ein Bsp. um den Aufruf zu zeigen.
Dim GPAdr As GP_Adresse
GPAdresse.Strasse = "Straßenname"
GPAdresse.Hausnr = "Die Hausnr."
GPAdresse.Vorname = "Kundenvorname"
GPAdresse.Nachname = "Kundennachname"
GPAdresse.PLZ = "Die PLZ des Kunden"
GPAdresse.Ort = "Wo der Kunde wohnt"
End Function
Aufruf über das Direktfenster
GPAdresse_finden(10102010)
? GPAdresse.Hausnr
Ergebnis
Die Hausnr.
Da meine Lösung auch in Excel und in Word am Ende funktionieren sollte, geht es leider nicht über eine Tabelle.
Durch meine Lösung ist der Zugriff auf die einzelnen Felder aber einfacher, da die Daten nur einmal gelesen werden und danach an jeder beliebigen Stelle einfach zugewiesen werden können.
Trotzdem noch einmal vielen Dank für die Antwort.
Gruß
Volker