PDA

Vollständige Version anzeigen : EP fuer Button Duplicate Record


Mel
09.05.2001, 14:16
Hallo!!!

Habe in meiner DB einen Button "Duplicate Record". Wenn auf diesen Button gedrueckt wird, dupliziert mir Access aber nur einen Datensatz. Ich moechte eine Message Box, welche abfraegt, wie oft ich den Datensatz dupliziert haben moechte. Wenn dann der User z.B. 50 eingibt, soll der Datensatz 50 mal dupliziert werden.

Kann mir jemand helfen, ich habe naemlich nicht viel Ahnung von VB.

Danke schon mal im voraus, fuer Eure Hilfe, habe bisher immer hilfreiche Antworten bekommen.

Mel

Scorefun
09.05.2001, 15:32
Sub DuplicateRecord()

dim i

i = inputbox("Wie oft kopieren?","Bitte eine Zahl eingeben","1")

if not isnull(i) or trim(i) = "" then

for i = 1 to clng(i)
'Hier Deine Duplikation vornehmen
next i

end if

end sub

Ungetestet... mal probieren...

Mel
09.05.2001, 15:49
Hallo! Hab jetzt in die EP, welche von Access automatisch erstellt wird, bei der Erstellung eines Buttons diese EP eingefuegt, aber ich bekomme die Fehlermeldung "Compile error: Variable not defined!"

Bin eine ziemliche 0 in VB, kannst mir nochmal helfen, was ich an untenstehender EP zu aendern habe????

Private Sub duplicate_record_Click()
On Error GoTo Err_duplicate_record_Click

i = InputBox("How often do you want to copy this record?", "Please insert a number", "1")

If Not IsNull(i) Or Trim(i) = "" Then

For i = 1 To CLng(i)
'Hier Deine Duplikation vornehmen
Next i

End If

Dim i

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Exit_duplicate_record_Click:
Exit Sub

Err_duplicate_record_Click:
MsgBox Err.Description
Resume Exit_duplicate_record_Click



End Sub

Danke fuer Deine Hilfe,

Mel

Scorefun
09.05.2001, 15:55
meine kleine Zeile

dim i

haste an der falschen Stelle.
Die muß ganz an den Anfang direkt unter der
Fehlerbehandlungsroutine, damit sie rechtzeitig von Access erkannt wird, bevor mit

i = inputbox...

losgelegt wird.

gruss Ralf

Außerdem muß deine Kopieraktion an die Stelle, wo ich
es geschrieben habe
for i = 1 to clng(i)

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

next i

Vitjok
09.05.2001, 15:55
Hi.
Deine EP kann z.B. so aussehen:
Private Sub cmdDup_Click()
On Error GoTo Err_cmdDup_Click
Dim varDupCount
Dim i As Integer

varDupCount = InputBox("Anzahl", "Datensatz duplizieren")

i = Int(varDupCount)
Do While i > 0
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append
i = i - 1
Loop

Exit_cmdDup_Click:
Exit Sub

Err_cmdDup_Click:
MsgBox err.Description
Resume Exit_cmdDup_Click

End Sub

Einzige Beschraenkung von dieser Loesung: keine Felder, die Duplikate nicht zulassen.

Mel
09.05.2001, 16:23
Hallo nochmal,

also ich hab jetzt die EP von Vitjok 1 zu 1 eingefuegt, und ich bekomme jetzt auch meine Message Box und alles ist prima, aber jetzt funktioniert folgendes nicht mehr :-(

Private Sub item_number_AfterUpdate()
Sub RequeryList()
Dim ctlList As Control

' Return Control object pointing to list box.
Set ctlList = Forms!Employees!EmployeeList
' Requery source of data for list box.
ctlList.Requery

End Sub

Fehlermeldung:

Compile Error: expected end sub

Sorry, aber darf ich Euch nochmal um Eure Hilfe bitten???!!!

Mein Chef sitzt mir im Nacken!

VlG Mel

Vitjok
10.05.2001, 09:49
Hi.
Eine von deinen Prozeduren ist nicht abgeschlossen. Dein Code von vorher koennte z.B so aussehen:
Sub RequeryList()
Dim ctlList As Control

' Return Control object pointing to list box.
Set ctlList = Forms!Employees!EmployeeList
' Requery source of data for list box.
ctlList.Requery
End Sub

Private Sub item_number_AfterUpdate()
RequeryList
End Sub

Aber es scheint so zu sein, dass du beim Einfuegen von RequeryList() den Inhalt von item_number_AfterUpdate() uebrschrieben hast.