Neuigkeiten:

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

Mobiles Hauptmenü

Neuen Datensatz erstellen

Begonnen von hover, Oktober 17, 2012, 09:53:53

⏪ vorheriges - nächstes ⏩

hover

Hallo, ich habe eine Access 2.0 Datenbank auf Access 2003 konvertiert und möchte diese mit der Access 2010 Runtime ausführen lassen. Es dürfte bis jetzt alles passen, ich scheitere nur am Erstellen von neuen Datensätzen.
Es gibt ein Hauptformular (frmmitarb) mit einem Unterformular (ufrmbesmitarb). Wenn man auf "Neuer Datensatz klickt" soll einfach ein neuer Datensatz mit einer forlaufenden Nummer ersellt werden. Das Feld "mitcode" hat einen Primärschlüssel und die Datensätze 1-2000 und der neue Datensatz soll jetzt 2001 bekommen.
Aber er bekommt die ID -18900 . Ansonsten funkitoniert alles, man kann Daten in den Datensatz speichern, genau suchen und nacher löschen.
Nur die forlaufende Nummer checkt er nicht.

Private Sub btn_neuds_Click()
On Error GoTo Err_btn_neuds_Click

    DoCmd.GoToRecord , , acNewRec
   
    Forms![frmmitarb]![mitzunam] = " "
    Me![ufrmbesmitarb].Formulare![besmitcode] = Me![mitcode]
    Forms![frmmitarb]![mitzunam].SetFocus
   
Exit_btn_neuds_Click:
    Exit Sub

Err_btn_neuds_Click:
    MsgBox Error$
    Resume Exit_btn_neuds_Click
   
End Sub


Wäre super wenn jemand einen Tip hat, habe leider bis jetzt noch nicht wirklich Access Erfahrung :-)
Danke!

DF6GL

Hallo,



Welchen Datentyp hat denn das Primärschlüsselfeld?

Eine "Laufende Nummer" ist an sich nicht nötig, es gibt auch keinen Standard-Vorgang in Access, der eine (richtige) laufende Nr erzeugt. Ein Feld mit Datentyp "Autowert" kann zwar auf "Inkrementell" gestellt werden, ist aber keine Garantie, dass keine Lücken auftreten können/werden.


Weiterhin ist Dein Code (bzgl. der PS-Zuweisung) überflüssig.  Wenn die Tabellen über das/die Schlüsselfeld/er in den Tabellen in Beziehung stehen, dann reicht es aus, im UFO-Steuerelement die Eigenschaften "Verknüpfen von/nach" auf eben diese Schlüsselfeder zu setzen.


Private Sub btn_neuds_Click()
On Error GoTo Err_btn_neuds_Click

   DoCmd.GoToRecord , , acNewRec
   
  Me!mitzunam] = " "  
Me![UFO-SteuerelementName]![besmitcode] = Me![mitcode]    

Me![UFO-Steuerelementname].SetFocus    
Exit_btn_neuds_Click:
   Exit Sub

Err_btn_neuds_Click:
   MsgBox Error$
   Resume Exit_btn_neuds_Click
   
End Sub

hover

Danke, ich habe die 3 Zeilen rausgenommen, das passt :-)
Ich habe das Feld auf Autowert und Inkrement, ändern kann ich es nicht, dann schreibt er, der Datentyp wird nicht unterstützt.

Es muss ja auch nicht zwingend eine forlaufende Nummer sein, aber "-200754" dann "-200753" usw sieht wirklich nicht schön aus.
Kann man das ändern?

69bruno

Man kann das Feld auf unsichtbar setzen    ::)
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

hover

Danke, aber ich hab nach langer Suche eine Lösung gefunden:
http://allenbrowne.com/ser-40.html

Einmal das Skript über die Tabellen laufen lassen und alle Nummern passen wieder! Ein Traum :-)

DF6GL

Hallo,


das funktioniert aber nur , solange keine Datensätze in anderen Tabellen mit diesen "falschen" Werten verknüpft sind....