Access VGA Code?
Hey, kann mir wer folgen Code so umschreiben, dass der nicht anfragt, wie oft dupliziert werden soll, sondern der das aus einem Zahlenfeld im gleichen Formular entnimmt?:
-------------
Private Sub Befehl36_Click()
Dim lngI As Long
Dim lngIMax As Long
Dim strEingabe As String
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
strEingabe = InputBox("Wie oft?", , 1)
'Benutzereingabe wurde abgebrochen
If StrPtr(strEingabe) = 0 Then Exit Sub
lngIMax = Val(strEingabe) - 1
For lngI = 1 To lngIMax
DoCmd.RunCommand acCmdPasteAppend
Next lngI
End Sub
---------------
Vielen Dank
3 Antworten
Als Quick &/ Dirty Lösung einfach statt dem Rückgabewert der Inputbox, den verweis auf das Zahlenfeld. Die Datentypen würde ich auch sauberer machen - aber so wirds gehen... (- ohne den Sinn dieser Routine zu hinterfragen)
Private Sub Befehl36_Click()
Dim lngI As Long
Dim lngIMax As Long
Dim strEingabe As String
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
strEingabe = [Feldname]
'Benutzereingabe wurde abgebrochen
If StrPtr(strEingabe) = 0 Then Exit Sub
lngIMax = Val(strEingabe) - 1
For lngI = 1 To lngIMax
DoCmd.RunCommand acCmdPasteAppend
Next lngI
End Sub
Ohne Rumpf, leicht geändert nach aktuellem Programmierstil und neu benamt:
Dim i As Long
Dim iMax As Long
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
'Copy Paste Funktionen sind nicht mein Ding,
'ich bevorzuge SQL Statements.
iMax = CLng(txtMaxToDuplicate)
'txtMaxToDuplicate ist das Textfeld oder Combifeld.
if iMax < 1 Then Exit Sub ' Mindestens 1x
For i = 1 To iMax
DoCmd.RunCommand acCmdPasteAppend
Next
ja. Clng sorgt dafür, dass kein Unsinn eingegeben wird. (.Text ist optional aber klar besser)
Wie ist das Zahlenfeld definiert?
Dankeeee
müsste ich "txtMaxToDuplicate.Text", dann in meinem Fall mit Anzahl überschrieben, oder nur einen Teil davon