Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problem mit Access und VBA

Empfohlene Antworten

Veröffentlicht

Hi Leute,

ich habe ein Problem mit dieser Funktion und zwar wird mir folgender Fehler an der im Code markierten Stelle angezeigt:

Laufzeitfehler '3015':

'Monat ist kein Index in dieser Tabelle. Anhand der Index-Auflistung des TadleDef-Objekts koennen Sie die gueltigen Indexnamen ermitteln.

Public Function ImportDaten()

Dim i As Date

Dim A As Date

Dim B As Date

Dim DB As Database

Dim AusgewMon As Recordset

A = DateValue(Format(Forms!Formular1.Importstartdat, "dd.mm.yyyy"))

B = DateValue(Format(Forms!Formular1.Importendedat, "dd.mm.yyyy"))

For i = A To B Step 31

ImportMonatsdaten (i)

DoEvents

Set DB = CurrentDb

Set AusgewMon = DB.OpenRecordset("tab_AusgewerteteMonate")

AusgewMon.Index = "Monat" <==FEHLER

AusgewMon.Seek "=", i

If AusgewMon.NoMatch Then

AusgewMon.AddNew

AusgewMon("Monat") = i

AusgewMon.Update

AusgewMon.Close

End If

Next i

End Function

Gruss

Psychomutter

Das Feld, das man mit der "Index"-Eigenschaft angibt, muss in der Datenbank auch ein indiziertes Feld sein, sonst geht das nicht. Wenn du die DB-Struktur nicht ändern kannst/darfst/willst, nimmt die Find-Methode statt Seek.

Das Feld in der Tabelle ist aber Indiziert!!!

Aber ich glaube ich hab die Loesung.

Ich habe anstelle von:

AusgewMon.Index = "Monat"

AusgewMon.Index = "PrimaryKey" gesetzt und es funzt anscheinend

Das erinnert mich an was: Bei der Index-Eigenschaft gibt man auch nicht den Namen des indizierten Feldes (also "Monat") an, sondern den Namen des Indexes. Wenn man den nicht manuell ändert, verleibt die Voreinstellung "PrimaryKey".

HTH

hmm wenn ich aber in der Liste der Indexes der Tabelle nachsehe steht da auch ausser "PrimaryKey" auch "Monat" als Indexname und trotzdem geht es nicht. Ich hab keinen Schimmer warum nicht!! In einem Beispielprogramm hab ich gesehen das es so (mit "Monat") ging.

Naja wie auch immer mit PrimaryKey funzt es auf jeden Fall.

Trotzdem danke fuer die Hilfe.

MfG

Psychomutter

Achso noch was anderes: kann ich das "DoEvent" weglassen oder ist es besser wenn ich es drin lass??

DoEvents brauchst du nur dann, wenn du zwischendurch z.B. Aktualisierungen im Formular vornimmst, z.B. für den Progressbar. Wenn du sowas nicht nutzt, kannst DoEvents weglassen, allein schon wegen der Beschleunigung.

Originally posted by Psychomutter

Achso noch was anderes: kann ich das "DoEvent" weglassen oder ist es besser wenn ich es drin lass??

Ich rate dir, es drin zu lassen. Wenn die beiden Daten in den Datumsfeldern sehr weit auseinander liegen, könnte dein Skript ja eine Weile laufen. Ohne DoEvents hast du dann schon Probleme, zu einer anderen Anwendung zu wechseln oder Abzubrechen oder ,,,

Reinhold

OK danke fuer die Tips.

Bis zum naechsten Problem;)

MfG Psychomutter

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.