Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Rückgabe - Array

Begonnen von bungev, Juni 17, 2013, 10:20:45

⏪ vorheriges - nächstes ⏩

bungev

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

MzKlMu

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.
Gruß Klaus

bungev

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