PDA

Vollständige Version anzeigen : Datensatz mit VBA suchen


andreas3366
23.10.2001, 17:02
Hallo an Alle,
ich habe hier eine Funktion die unter Access 2.0 erstellt worden ist, und nun unter Access2000,wenn die ganze Datenbank kompiliert ist auch läuft. Mein Problem ist nun ich möchte diese Funktion auch auf einer neuen Datenbank nutzen. Wenn ich dann das Formular mit der Funktion importiere bekomme ich die Fehlermeldung "Benutzerdefinierter Typ nicht definiert" und bleibt dann bei "Abfrage1 As QueryDef,DB1 As Database" stehen. Ich habe diese Funktion selber mal auch einem Buch übernommen und für meine Zwecke geändert aber im Moment komme ich damit nicht weiter.
Ich hoffe auch Eure Hilfe und schon mal Dank im Voraus.

Grüße
Andreas

Private Sub prüfen()
Dim kriterien As String, Abfrage1 As QueryDef, DB1 As Database, DsGruppe1 As Recordset
Dim NeuePosition As String, Suche As Variant

On Error GoTo FBehandler 'Fehlerbehandler einrichten.

Suche = Me.Auftragsnummer
If IsNull(Suche) Then MsgBox "Vorgang abgebrochen, Auftragsnummer fehlt!", 16, "Achtung": DoCmd.GoToControl "Auftragsnummer": Exit Sub
kriterien = "Auftragsnummer = " & "'" & Suche & "'"

'-----Datum umformatieren---------------------------
dat = DATE - (Me.[AnzahlMonate] * 30)
da1 = (Format$(dat, "m"))
da2 = (Format$(dat, "yy"))
da3 = (Format$(dat, "d"))
dat = ">#" + da1 + "/" + da3 + "/" + da2 + "#"



Set DB1 = DBEngine.Workspaces(0).Databases(0)
Set DsGruppe1 = DB1.OpenRecordset("SELECT DISTINCTROW Auftrag.Auftragsnummer, Auftrag.Datum FROM Auftrag WHERE ((Auftrag.Datum" + dat + "));")
dat = da3 + "." + da1 + "." + da2
DsGruppe1.FindFirst kriterien ' Erstes Vorkommen suchen.
Do Until DsGruppe1.NoMatch 'Schleife durchlaufen, solange passende Datensätze vorhanden sind
da = DsGruppe1!Datum

MsgBox "Die Auftragsnummer '" & Suche & "' eingetragen am " & da & " ist bereits vorhanden!" & Chr$(13) + Chr$(13) & "Die Suche wurde ab dem " & dat & " begonnen!", 16, "Achtung"
DoCmd.GoToControl "Auftragsnummer"
SendKeys "{ESC}" 'Datensatz durch Taste ESC löschen
DsGruppe1.FindNext kriterien

GoSub ende
Loop ' Ende der Schleife.
MsgBox "Auftragsnummer ist in Ordnung" + Chr$(13) + "Es wurde ab dem " & dat & " geprüft!", 64, "Information"
DoCmd.Close acForm, "Auftragsnummer"
DoCmd.OpenForm "Auftrag"
DoCmd.SelectObject acForm, "Auftrag", True

DoCmd.GoToRecord acForm, "Auftrag", A_NEWREC
'Me![Auftrag]![Anzeige].BackColor = RGB(128, 0, 0)
Forms!Auftrag!Auftragsnummer = Suche


ende:
DsGruppe1.Close
DB1.Close
Exit Sub ' Beendet die Prozedur, bevor die Fehlerbehandlung gestartet wird.
FBehandler: ' Zeilenmarke der Fehlerbehandlung.
Select Case Err
Case 76: MsgBox "Fehler 76: Dieser Pfad existiert nicht."
Case 13
z = z + 1
If z = 1 Then MsgBox "Teilung mit einem Buchstaben ist nicht möglich!"
If z = 2 Then
MsgBox "Sie müssen ein numerisches Zeichen bei Prüfung Monate eingeben!", 32
DoCmd.GoToControl "AnzahlMonate"
End If
If z = 3 Then
MsgBox "Ein Versuch noch !!!", 32
DoCmd.GoToControl "AnzahlMonate"
End If
If z = 4 Then
MsgBox "Lesen Sie ein Schulbuch.", 32
DoCmd.RunMacro "Schließen"
End If
Exit Sub
Case Else: MsgBox "Fehler " & Err & " aufgetreten .????"
Exit Sub
End Select
Resume Next ' Prozedur wiederaufnehmen.

End Sub

Stema
23.10.2001, 17:22
Hallo Andreas,

versuch's mal mit:
...Abfrage1 As DAO.QueryDef, DB1 As DAO.Database..

andreas3366
23.10.2001, 17:29
Hallo Stema,

hab es natürlich sofort probiert klappt aber nicht. was bedeutet denn DAO.

Gruß andreas

Stema
23.10.2001, 17:33
Data Access Objects ist eine Object-Bibliothek, die über die Verweise eingebunden wird. Dann schau mal nach, ob die DAO-Bibliothek eingebunden ist, die brauchst Du nämlich.

Ein Modul öffnen und dann über Tools->References (Extras?->Verweise) "Microsoft DAO..."

Stema
23.10.2001, 17:35
Welche Verweise sind denn bei Dir eingebunden?

andreas3366
23.10.2001, 17:54
hi Stema
ersmal vielen Dank für die Hilfe,
es geht schon ein Stück weiter ich habe die Verweise eingetragen aber nun stock er an dieser Stelle "DsGruppe1.FindFirst kriterien ' Erstes Vorkommen suchen.

Methode oder Datenobjekt nicht gefunden

andreas3366
23.10.2001, 18:01
hallo Stema,
jetzt klappt es, ich habe die Verweise in eine andere Reihenfolge gebracht. In die Reihenfolge der ursprünglichen Datenbank. Nochmal vielen Dank für die Hilfe wäre ich alleine nieeeeeeeeeeeee darauf gekommen.

Gruß
andreas