Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Definition von Arrays in Access 2003
zurück: VB Stürzt mitsam DB IMMER ab. weiter: Verstrichene Zeit angeben Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast01020304
Gast


Verfasst am:
18. Jun 2008, 08:13
Rufname:

Definition von Arrays in Access 2003 - Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Hallo zusammen,

auf die Inhalte von Arrays benötige ich Zugriff von verschiedenen Subs und Funkionen. Ich habe ein Modul 'modDeklarationen', in dem ich alle Variablen für das Projekt definiert habe. Darin habe ich definiert:
Code:
Public arrWochentage
arrWochentage = Array("", "mo", "di", "mi", "do", "fr")
'==> Fehlermeldung: Außerhalb einer Prozedur ungültig
Wenn ich das Array innerhalb einer Sub oder Funktion mit Dim deklariere, dann funktioniert das auch. Aber ich denke, das muss man ja auch irgendwie zentral deklarieren können.

Wie kann ich Arrays zentral so definieren, dass die innerhalb des Projekts von allen Subs und Funktionen genutzt werden können?

Danke für Hinweise.


Gruß,

Stefan
Elvis_the_King
Im Profil kannst Du frei den Rang ändern


Verfasst am:
18. Jun 2008, 09:31
Rufname:


AW: Definition von Arrays in Access 2003 - AW: Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Hi,

deklariere das Array als Public Function - etwa so:
Code:
Public Function arrWochentage()
    arrWochentage = Array("", "mo", "di", "mi", "do", "fr")
End Function
Zugriff dann etwa so:
Code:
Sub asdf()
    MsgBox arrWochentage(2)
End Sub
Die Messagebox gibt "di" zurück, da das Array mit Index 0 beginnt.

Schönen Gruß,
Eric
Gast01020304
Gast


Verfasst am:
18. Jun 2008, 10:37
Rufname:

AW: Definition von Arrays in Access 2003 - AW: Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Hallo Elvis,

vielen Dank für Deinen Vorschlag.

Leider kommt beim Aufruf Deiner Lösung
Code:
Public Function arrWochentage()
    arrWochentage = Array("", "mo", "di", "mi", "do", "fr")
End Function
in der Sub-Routine
Code:
Private Sub subXYZ()
    '...
    For zWochentag = 1 To 5
        feld = arrWochentage(zWochentag)
        '...
    Next zWochentag
    '...
End Sub
die Zeile feld = arrWochentage(zWochentag) die Fehlermeldung
Zitat:
Laufzeitfehler 13: Typen unverträglich
Woran liegt das?

Gruß,

Stefan
Elvis_the_King
Im Profil kannst Du frei den Rang ändern


Verfasst am:
18. Jun 2008, 11:00
Rufname:

AW: Definition von Arrays in Access 2003 - AW: Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Der Datentyp der Variable "Feld" sollte - wie das Array auch - ein String sein, sonst klappt das nicht.

Greetz,
Eric
Gast01020304
Gast


Verfasst am:
18. Jun 2008, 11:14
Rufname:


AW: Definition von Arrays in Access 2003 - AW: Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Hallo,

sind beide vom Typ String, klappt aber immer noch nicht.

Gruß,

Stefan
Elvis_the_King
Im Profil kannst Du frei den Rang ändern


Verfasst am:
18. Jun 2008, 11:25
Rufname:

Verstehe ich nicht - Verstehe ich nicht

Nach oben
       Version: Office 2003

Hi,

wenn ich dieses Coding hier - so wie es ist - in ein leeres allgemeines Modul in Access kopiere, dann läuft das bei mir einwandfrei:
Code:
Option Compare Database
Option Explicit

Public Function arrWochentage()
    arrWochentage = Array("", "mo", "di", "mi", "do", "fr")
End Function

Private Sub subXYZ()
    Dim zWochentag As Long
    Dim feld       As String
   
    For zWochentag = 1 To 5
        feld = arrWochentage(zWochentag)
        Debug.Print feld
    Next zWochentag
End Sub
Zeig mir ggf. nochmal etwas mehr (das gesamte Coding einschließlich der Variablendeklarationen).
Gast01020304
Gast


Verfasst am:
18. Jun 2008, 11:58
Rufname:

AW: Definition von Arrays in Access 2003 - AW: Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Smile Smile
Code:
Public feld As String
Public zZähler As Integer

Private Sub Befehl0_Click()
    For zZähler = 0 To 2
        feld = arrWochentag(zZähler)
        MsgBox "1.: " & feld
    Next zZähler
    feld = arrWochentag(Me!nr)
    MsgBox "2.: " & feld
End Sub

Public Function arrWochentag() As String
    arrSpalte = Array("", "mo", "di", "mi", "do", "fr")
End Function
Genau das Gleiche habe ich in einer neuen DB gemacht. Und wenn ich dann das "As String" hinter der Public Function arrWochentag() wegnehme, dann gehts auch.

In meinem eigenen Projekt funktionierts aber trotzdem immer noch nicht.

Gruß,

Stefan
Gasth
Gast


Verfasst am:
18. Jun 2008, 12:09
Rufname:

AW: Definition von Arrays in Access 2003 - AW: Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Hallo,
MS in der OH: hat folgendes geschrieben:
Array-Funktion
Gibt einen Wert vom Typ Variant zurück, der ein Datenfeld enthält.
also mal so testen
Public Function arrWochentag() As Variant

Gruß kh
Elvis_the_King
Im Profil kannst Du frei den Rang ändern


Verfasst am:
18. Jun 2008, 12:10
Rufname:

AW: Definition von Arrays in Access 2003 - AW: Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Hi,

also das "As String" an der Function ist falsch - das muss weg, denn diese Function gibt ja keinen String zurück, sondern ein Array (und ist deshalb entweder "As Variant" oder gar nicht zu deklarieren Wink

Aber ich kann machen, was ich will: Bei mir läuft Dein Coding... Rolling Eyes

Vielleicht willst Du alternativ nochmal das hier ausprobieren:
Code:
Public feld    As String
Public zZähler As Integer
Public arrTmp  As Variant

Private Sub Befehl0_Click()
    arrTmp = arrWochentag()
    For zZähler = 0 To 2
        feld = arrTmp(zZähler)
        MsgBox "1.: " & feld
    Next zZähler
    feld = arrTmp(Me!nr)
    MsgBox "2.: " & feld
End Sub

Greetz,
Eric
Willi Wipp
Moderator


Verfasst am:
18. Jun 2008, 12:55
Rufname:
Wohnort: Raum Wiesbaden

Re: Definition von Arrays in Access 2003 - Re: Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Hi Gast01020304,

der Funktionsname sollte natuerlich auch mit dem Namen in der Zuweisung uebereinstimmen!
Code:
'               vvvvvvvvvvvv
Public Function arrWochentag() As Variant
'   vvvvvvvvv
'   arrSpalte = Array("", "mo", "di", "mi", "do", "fr")
'   vvvvvvvvvvvv
    arrWochentag = Array("", "mo", "di", "mi", "do", "fr")
End Function

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Elvis_the_King
Im Profil kannst Du frei den Rang ändern


Verfasst am:
18. Jun 2008, 13:06
Rufname:

Wenn Du Recht hast, hast Du Recht! - Wenn Du Recht hast, hast Du Recht!

Nach oben
       Version: Office 2003

Hab ich doch glatt übersehen! Embarassed
Gast01020304
Gast


Verfasst am:
18. Jun 2008, 17:27
Rufname:


AW: Definition von Arrays in Access 2003 - AW: Definition von Arrays in Access 2003

Nach oben
       Version: Office 2003

Hallo an alle,

des Rätsels Lösung, warum es bei mir nicht geklappt hat: ich hatte an einer Stelle vergessen, die Dim-Anweisung für die Array auszukommentieren - nun geht's.

Vielen Dank für Eure Mühen.

Gruß,

Stefan
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Access 2003: zusammengesetztTextfeldformatierung in Tabelle 3 Grmpf 797 09. März 2011, 10:13
KlausMz Access 2003: zusammengesetztTextfeldformatierung in Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: Wenn (Oder... für Access 2003 1 Bilderstuermer 386 28. Jul 2010, 13:24
Gast Wenn (Oder... für Access 2003
Keine neuen Beiträge Access Tabellen & Abfragen: Top-Funktion in Access 2003 mittels VBA 18 Rotzlöffel 2564 13. Jul 2010, 17:46
excel_user123 Top-Funktion in Access 2003 mittels VBA
Keine neuen Beiträge Access Tabellen & Abfragen: Invaild field definition 'ID' in definition of Index or... 5 j.hillmann 903 16. Jun 2010, 18:44
KlausMz Invaild field definition 'ID' in definition of Index or...
Keine neuen Beiträge Access Tabellen & Abfragen: Komma getrennte Ausgabe aus Access 2003 2 snoopy59 898 03. Jun 2010, 14:13
snoopy59 Komma getrennte Ausgabe aus Access 2003
Keine neuen Beiträge Access Tabellen & Abfragen: Projekt von 2003 umziehen nach 2007 1 bendigo 279 03. Mai 2010, 19:01
Gast Projekt von 2003 umziehen nach 2007
Keine neuen Beiträge Access Tabellen & Abfragen: Verknüpfte Tabelle auf Sharepointliste (Access 2003) 0 Strasser09 584 07. Okt 2009, 13:16
Strasser09 Verknüpfte Tabelle auf Sharepointliste (Access 2003)
Keine neuen Beiträge Access Tabellen & Abfragen: AC 2003 - Summe aus Spalte für späteres Pivot Chart 2 Binzn 396 27. Jul 2009, 07:51
Binzn AC 2003 - Summe aus Spalte für späteres Pivot Chart
Keine neuen Beiträge Access Tabellen & Abfragen: Fehler in VBA-SQL Definition 2 Trubel 509 17. Apr 2009, 18:32
Trubel Fehler in VBA-SQL Definition
Keine neuen Beiträge Access Tabellen & Abfragen: Abfragen verlieren definition 0 Marco S. 293 02. Apr 2009, 15:56
Marco S. Abfragen verlieren definition
Keine neuen Beiträge Access Tabellen & Abfragen: Anfügeabfrage erkennt nur eine Tabelle - Access 2003 0 BerndK 2421 24. Feb 2009, 21:05
BerndK Anfügeabfrage erkennt nur eine Tabelle - Access 2003
Keine neuen Beiträge Access Tabellen & Abfragen: Access 2003 DB zu Access 2007 0 desertangle 1426 17. Apr 2008, 11:08
desertangle Access 2003 DB zu Access 2007
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: JavaScript