Neuigkeiten:

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

Mobiles Hauptmenü

Daten existieren Bereit

Begonnen von Youssef, Juni 22, 2015, 13:53:19

⏪ vorheriges - nächstes ⏩

Youssef

Hallo,
ich will Daten vor einfügen in meiner gewünschte Tabelle Prüfen , ob die schon vorhanden sind .
gibts ein Code dafür ?

LG
Youssef

Youssef

meine tabelle  schaut ungefär so aus:
ToolID   CUTSPEED
12345     50

wenn ich jetzt unter 12345 was speichere und zwar den gleichen Wert 50 soll er ein message mit  "der Datensatz ist schon vorhanden!"
ich habe im internet was gefunden und zwar mit dem Code :

If DCount("CUTSPEED", "MeineTabelle", "TOOLID ") Then
        MsgBox " die Schnittdaten existieren bereits", vbExclamation + vbOKOnly, "Information"
   End If


funktioniert leider nicht .
Kann mir jemanden weiter helfen

Lg
Youssef

DF6GL

Hallo,

und was wäre, wenn Du Dich darum gar nicht kümmerst?  Wenn der gleiche Wert wie vorhanden noch mal an der selben Stelle gespeichert wird, ist das ganze Prozedere doch eh egal...

Etwas Anderes wäre es, wenn der Wert bei einer anderen ID gespeichert werden soll und nur insgesamt einmal vorkommen darf.  Dann wäre das Setzen eines eindeutigen Index auf das Feld "CUTSPEED" angebracht.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Youssef

Hallo Franz,
ich verstehe nicht was du grade meinst .
in meiner Access Anwendung will ich daten von vorhanden ToolID auf einen Neuen ToolID übertragen.
Alles ist soweit gut gelaufen, kann die Daten nun übertragen ohne Probleme.
Was mir noch fehlt ist nur prüfen ob die Daten schon vorhanden damit wir nicht die Daten wiederholt schreiben.
Die neue Daten die ich zu der neuen ToolID einfüge werden immer zeilweise eingefügt werden.

DF6GL

Hallo,

wenn "ToolID" der Primärschlüssel in der Tabelle ist, dann ist es egal, ob du weißt, dass der Wert in "CUTSPEED" bei derselben ID mit demselben Wert überschrieben wird oder nicht...



Zitatmeine tabelle  schaut ungefähr so aus:
diese Aussage nützt wenig (solltest Du nun so langsam erkennen und die Sachlage GENAUER/VOLLSTÄNDIG und namentlich beschreiben) . "Ungefähr" funktioniert nicht in einer DB ....

Wie auch immer, so kannst Du erkennen, ob der eingegebene Wert (in "CUTSPEED" in einem Form-Textfeld) im Datensatz , der durch ToolID bestimmt ist, schon abgespeichert ist:

Sub CUTSPEED_BeforeUpdate(Cancel as Integer)
If nz(Dlookup( "CUTSPEED","tblDeinegewünschteTabelle","ToolID= " & Me!ToolID),0) = Me!CUTSPEED.Text Then
MsgBox "Die Schnittdaten existieren bereits", vbExclamation + vbOKOnly, "Information"
Cancel =true
Me.Undo
End If
End Sub

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

Hallo,
Zitat von: Youssef am Juni 22, 2015, 14:53:10wenn ich jetzt unter 12345 was speichere und zwar den gleichen Wert 50 soll er ein message mit  "der Datensatz ist schon vorhanden!"
warum richtest du keinen eindeutigen (Mehrfelder-) Index ein, um mehrfache Kombinationen zu verhindern?!
Freundliche Grüße
MaggieMay

Youssef

Hi,
TOOlID ist bei mir ein Primärschlüssel.
hast du recht mit dem überschreiben.
In meinem Fall habe ich dass so  Programmiert. wenn das Werkzeug(TOOLID) neue werte bekommt wirds eine neue Datensatz darunterhinterlegt.
Das mit dem überschreiben wirds jetzt nicht der fall sein, also werden die Daten nochmal wiederholt geschrieben wenn ich die gleichen werte nochmal eingebe.

Mein wunsche wäre vor dem einfüge Code, dein Vorgeschlagenen Code zum meinem Code anzupassen und damit   Prüfen ob der Wert in Schnittgeschwindigkeit (txtCUTSPEED in die Eingabemaske) ähnlich wie CUTSPEED(Feld in meiner Tabelle) unter Neues Komplettwerkzeug (txtTOOLID in die Eingabemaske) bzw. TOOLID in meiner Tabelle.
Hir ist mein Code zum einfüngen von Daten:

strSQL1 = "INSERT INTO TMS_TDM_TOOLTECHNOEXV ([TOOLID],[MATERIALID],[MATERIALGROUPID],[MACHINEID],[MACHINEGROUPID],[TECHNOCLASSID],TOOLTECHNOPOS )" & _
                "VALUES ('" & Me.txtTOOLID & "', '" & _
                        Me.txtMATERIALID & "','" & _
                        Me.txtMATERIALGROUPID & "', '" & _
                        Me.txtMACHINEID & "', '" & _
                        Me.txtMACHINEGROUPID & "', '" & _
                        Me.txtTECHNOCLASSID & "'," & a & ")"


'Einfügen in der Tabe.TMS_TDM_TOOLTECHNOLIST
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST ([TOOLID],CUTSPEED,FEEDPTOOTH,TOOLTECHNOLISTPOS,IDTYPE,TOOLTECHNOPOS)" & _
                "VALUES ('" & Me.txtTOOLID & "'," & _
                        Str(Me.txtCUTSPEED) & "," & _
                        Str(Me.txtFEEDPTOOTH) & ", 1 ,2," & a & " )"


'Einfügen in der Tabe.TMS_TDM_TOOLTECHNO
strSQL2 = "INSERT INTO TMS_TDM_TOOLTECHNO ([TOOLID],[TECHNOCLASSID],IDTYPE,TOOLTECHNOPOS)" & _
                "VALUES ('" & Me.txtTOOLID & "','" & _
                        Me.txtTECHNOCLASSID & "',2, " & a & ")"

Youssef


DF6GL

#8
Hallo,

also, wenn
ZitatTOOlID ist bei mir ein Primärschlüssel
ist, dann fress' ich einen Besen....  ::)


.
.
.
If Dcount( "*","TMS_TDM_TOOLTECHNOLIST","ToolID= " & Me!txtToolID & " And Cutspeed = " & str(Me!txtCUTSPEED)) >0 Then
MsgBox "Die Schnittdaten existieren bereits", vbExclamation + vbOKOnly, "Information"

Else

'Einfügen in der Tabe.TMS_TDM_TOOLTECHNOLIST
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST ([TOOLID],CUTSPEED,FEEDPTOOTH,TOOLTECHNOLISTPOS,IDTYPE,TOOLTECHNOPOS)" & _
                "VALUES ('" & Me.txtTOOLID & "'," & _
                        Str(Me.txtCUTSPEED) & "," & _
                        Str(Me.txtFEEDPTOOTH) & ", 1 ,2," & a & " )"

End If
.
.
.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Youssef

Hi,
ich habe den Code nochmal was geändert fuktioniert super danke dir :).
eine Frage :
bei diesem Code war das Prüfen nur bei der Wert von CUTSPEED gewesen,
wie wäre dann das mit mehr als ein Wert bsp. noch FEEDPTOOTH dazu und zwar alle gleichzeitig prüfen :
If Dcount( "*","TMS_TDM_TOOLTECHNOLIST","TOOLID= " & Me!txtTOOLID & " And CUTSPEED = " & str(Me!txtCUTSPEED)) >0 Then
MsgBox "Die Schnittdaten existieren bereits", vbExclamation + vbOKOnly, "Information"
elseif If Dcount( "*","TMS_TDM_TOOLTECHNOLIST","TOOLID= " & Me!txtToolID & " And FEEDPTOOTH = " & str(Me!txtFEEDPTOOTH)) >0 Then
MsgBox "Die Schnittdaten existieren bereits", vbExclamation + vbOKOnly, "Information"
.
.
.
Else

'Einfügen in der Tabe.TMS_TDM_TOOLTECHNOLIST
strSQL = "INSERT INTO TMS_TDM_TOOLTECHNOLIST ([TOOLID],CUTSPEED,FEEDPTOOTH,TOOLTECHNOLISTPOS,IDTYPE,TOOLTECHNOPOS)" & _
                "VALUES ('" & Me.txtTOOLID & "'," & _
                        Str(Me.txtCUTSPEED) & "," & _
                        Str(Me.txtFEEDPTOOTH) & ", 1 ,2," & a & " )"

End If
End If

Youssef

hat sich erlidigt ;-) Danke leute
LG
Youssef