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
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
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.
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.
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
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?!
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 & ")"
hi ,
was vergessen
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
.
.
.
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
hat sich erlidigt ;-) Danke leute
LG
Youssef