PDA

Vollständige Version anzeigen : Datenzugriff auf Tabellen per VBA


Dany
20.09.2001, 22:10
Ich möchte aus einem Access2000 Formular mit einer VBA Prozedur auf eine Tabelle zugreifen um Datensätze hinzuzufügen, zu ändern, etc.

Die Prozedur sieht folgendermaßen aus:

Private Sub Btn_Neu_Click()
Dim db As Database
Dim Kunde As Recordset

Set db = CurrentDb()
Set Kunde = db.OpenRecordset("Kundendaten")

Felder_leeren

Kunde.MoveLast
Me![Name1].Visible = True
Me![Name1].SetFocus

db.Close

Speicherart = 1
End Sub

Wenn ich diese prozedur aufrufe bekomme ich von Access2000 folgende Fehlermeldung:

"Laufzeitfehler '13' Typen unverträglich".
Der Debugger steht auf der Zeile:
Set Kunde = db.OpenRecordset("Kundendaten")

Woran kann das liegen. Hat jemand eine Idee ?

Danke, Daniel.

GustavKurz
21.09.2001, 07:57
Hallo Daniel,

mir wird leider nicht ganz klar, was die Prozedur bewirken soll?
Vielleicht kannst Du mal schreiben, was genau Du in der per Recordset geöffneten Tabelle schreiben/ändern willst?
habe mal Dein Coding kommentiert:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="REM">'******************************************************************************* ********</span>
<span class="TOKEN">Private Sub</span> Btn_Neu_Click()
<span class="TOKEN">Dim</span> db <span class="TOKEN">As</span> <span class="TOKEN">Database</span> <span class="REM">'OK!</span>
<span class="TOKEN">Dim</span> Kunde <span class="TOKEN">As</span> Recordset <span class="REM">'OK! </span>

<span class="TOKEN">Set</span> db = CurrentDb() <span class="REM">'OK!</span>
<span class="TOKEN">Set</span> Kunde = db.OpenRecordset("Kundendaten")<span class="REM">'OK</span class="REM">

Felder_leeren <span class="REM">'??? das kann keine Code-Anweisung sein,</span>
<span class="REM"> ' müsste wohl auskommentiert werden, also</span>
<span class="REM"> ' "'Felder_leeren" </span>

Kunde.MoveLast <span class="REM">' ...springt zum letzten Datensatz der Tabelle</span>
<span class="REM"> ' "Kundendaten"</span>
Me![Name1].Visible = <span class="TOKEN">True</span> <span class="REM">' Auf dem Aktuellen Formular, aus dem die Proze-</span>
<span class="REM"> ' dur aufgerufen wird, das Feld "[Name1] sichtbar</span>
<span class="REM"> ' machen??</span>
Me![Name1].SetFocus <span class="REM">'...und den Focus in das Formularfeld setzten??</span>

db.Close <span class="REM">' schließen!</span>

Speicherart = 1 <span class="REM">' ...kann auch keine Code-Anweisung sein, also</span>
<span class="REM"> ' auskommentieren mit "'"</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span> <span class="REM">' und Ende.</span>
<span class="REM">'******************************************************************************* **********</span></pre></div>
_
Gruß
Gustav

Manuela Kulpa
21.09.2001, 09:25
<font face="Verdana" size="2">Hallo Daniel!

und noch einen kleinen Tipp am Rande ;), <a href="http://www.donkarl.com" target="_blank">FAQs von Karl Donaubauer</a> - speziell

<a href="http://www.donkarl.com/FAQ/FAQ7Bugs.htm#7.11" target="_blank">FAQ 7.11 - Dim DB As Database in A00 bringt Fehler</a>

Ich vermute mal, du setzt A2K bzw. AXP ein, oder???

slg</font>