Access VGA Code?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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
Woher ich das weiß:Berufserfahrung
HerkulesGamer 
Fragesteller
 24.06.2022, 10:19

Dankeeee

müsste ich "txtMaxToDuplicate.Text", dann in meinem Fall mit Anzahl überschrieben, oder nur einen Teil davon

2
geri3d  24.06.2022, 10:20
@HerkulesGamer

ja. Clng sorgt dafür, dass kein Unsinn eingegeben wird. (.Text ist optional aber klar besser)

0

Wie ist das Zahlenfeld definiert?

HerkulesGamer 
Fragesteller
 24.06.2022, 10:12

es heißt Anzahl und es hat den Felddatentyp: Zahl

0