E
Eka1618
This question is towards Allen Browne, but if anyone knows the answer, please
let me know....
I took your script for duplicating records on forms and subforms. everything
is working well actually. What is not working is a loop that I have. I am
getting two sets of records when I try to duplicate a form.
for instance: One REQUEST can have many TESTS
If I have a request that has 2 tests, it duplicates fine, but instead of two
tests being duplicate, they are each duplicated twice. So now the new REQUEST
has 4 TESTS.
I loo[ through a query to determine which subforms I want to duplicate, and
my query return 2 records which is what I want.
My code is in a module, so I've passed the variable 'lngID' so my subforms
get the correct REQUEST_NO (PK in tblRequest).
If anyone knows whats going on with my code, please let me know, Thank You!
Here is the code:
Public Sub duplicateTest(frm As Form, LID As Long)
Dim tf As Boolean
Dim db As Database
Dim rs As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim prm As DAO.Parameter
Dim testType As String
Dim strSql As String 'SQL statement.
Dim longID As Long 'Primary key value of the new record.
Set db = CurrentDb()
Set qdf = db.QueryDefs("qryTestTypes")
For Each prm In qdf.Parameters
prm.Value = Eval(prm.Name)
Next prm
Set rs = qdf.OpenRecordset
longID = LID
While Not rs.EOF
testType = rs(1).Value
With frm
If testType = "IMPACT" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
A_M, SAMPLE_NO, PROVIDED, CYCLE_NO, CYCLE_TIME, TEST_TORQ, LOOKOUT,
TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS, A_M,
SAMPLE_NO, PROVIDED, CYCLE_NO, CYCLE_TIME, TEST_TORQ, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "LHANDLE" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
A_M, SAMPLE_NO, PROVIDED, CYCLE_NO, INSTALL_TRQ, WRENCH_NO, RPM, LOOKOUT,
TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS, A_M,
SAMPLE_NO, PROVIDED, CYCLE_NO, INSTALL_TRQ, WRENCH_NO, RPM, LOOKOUT,
TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "OFFSET" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, MIN_TORQ, SHROUD, LOOKOUT, TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, MIN_TORQ, SHROUD, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "GENERAL" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, CYCLE_NO, INSTALL_TRQ, DESCRIPTION, LOOKOUT, TEST_TYPE)
" & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, CYCLE_NO, INSTALL_TRQ, DESCRIPTION, LOOKOUT, TEST_TYPE "
& _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "PROOF LOAD" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, ACID, LOAD, MIN_LOAD, CUST_SPEC, LOOKOUT, TEST_TYPE) " &
_
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, ACID, LOAD, MIN_LOAD, CUST_SPEC, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "SECURITY" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, INSTALL_TRQ, LOOKOUT, TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, INSTALL_TRQ, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "STATIC" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, STRAIGHT_FAIL, BOTH_DIRECTIONS, INC_FAIL, START_PT,
INCREMENT, MIN_TORQ, LOOKOUT, TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, STRAIGHT_FAIL, BOTH_DIRECTIONS, INC_FAIL, START_PT,
INCREMENT, MIN_TORQ, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
Else
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, CYCLE_NO, LPS, TRQ_SHUTOFF, TRQ_PT1, TRQ_PT2, TRQ_PT3,
TRQ_PT4, TRQ_PT5, TRQ_PT6, RUNDOWN, THRESHOLD, TIGHT_SPEED, DWELL_ON,
DWELL_OFF, WHEEL, WHEEL_NO, TEST_WASHER, TAKE_TO_FAILURE, STUD_PER_TEST,
STUD_PT_NO, CUST_SPEC, LOOKOUT, TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, CYCLE_NO, LPS, TRQ_SHUTOFF, TRQ_PT1, TRQ_PT2, TRQ_PT3,
TRQ_PT4, TRQ_PT5, TRQ_PT6, RUNDOWN, THRESHOLD, TIGHT_SPEED, DWELL_ON,
DWELL_OFF, WHEEL, WHEEL_NO, TEST_WASHER, TAKE_TO_FAILURE, STUD_PER_TEST,
STUD_PT_NO, CUST_SPEC, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
End If
End With
rs.MoveNext
Wend
End Sub
let me know....
I took your script for duplicating records on forms and subforms. everything
is working well actually. What is not working is a loop that I have. I am
getting two sets of records when I try to duplicate a form.
for instance: One REQUEST can have many TESTS
If I have a request that has 2 tests, it duplicates fine, but instead of two
tests being duplicate, they are each duplicated twice. So now the new REQUEST
has 4 TESTS.
I loo[ through a query to determine which subforms I want to duplicate, and
my query return 2 records which is what I want.
My code is in a module, so I've passed the variable 'lngID' so my subforms
get the correct REQUEST_NO (PK in tblRequest).
If anyone knows whats going on with my code, please let me know, Thank You!
Here is the code:
Public Sub duplicateTest(frm As Form, LID As Long)
Dim tf As Boolean
Dim db As Database
Dim rs As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim prm As DAO.Parameter
Dim testType As String
Dim strSql As String 'SQL statement.
Dim longID As Long 'Primary key value of the new record.
Set db = CurrentDb()
Set qdf = db.QueryDefs("qryTestTypes")
For Each prm In qdf.Parameters
prm.Value = Eval(prm.Name)
Next prm
Set rs = qdf.OpenRecordset
longID = LID
While Not rs.EOF
testType = rs(1).Value
With frm
If testType = "IMPACT" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
A_M, SAMPLE_NO, PROVIDED, CYCLE_NO, CYCLE_TIME, TEST_TORQ, LOOKOUT,
TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS, A_M,
SAMPLE_NO, PROVIDED, CYCLE_NO, CYCLE_TIME, TEST_TORQ, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "LHANDLE" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
A_M, SAMPLE_NO, PROVIDED, CYCLE_NO, INSTALL_TRQ, WRENCH_NO, RPM, LOOKOUT,
TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS, A_M,
SAMPLE_NO, PROVIDED, CYCLE_NO, INSTALL_TRQ, WRENCH_NO, RPM, LOOKOUT,
TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "OFFSET" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, MIN_TORQ, SHROUD, LOOKOUT, TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, MIN_TORQ, SHROUD, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "GENERAL" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, CYCLE_NO, INSTALL_TRQ, DESCRIPTION, LOOKOUT, TEST_TYPE)
" & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, CYCLE_NO, INSTALL_TRQ, DESCRIPTION, LOOKOUT, TEST_TYPE "
& _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "PROOF LOAD" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, ACID, LOAD, MIN_LOAD, CUST_SPEC, LOOKOUT, TEST_TYPE) " &
_
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, ACID, LOAD, MIN_LOAD, CUST_SPEC, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "SECURITY" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, INSTALL_TRQ, LOOKOUT, TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, INSTALL_TRQ, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
ElseIf testType = "STATIC" Then
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, STRAIGHT_FAIL, BOTH_DIRECTIONS, INC_FAIL, START_PT,
INCREMENT, MIN_TORQ, LOOKOUT, TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, STRAIGHT_FAIL, BOTH_DIRECTIONS, INC_FAIL, START_PT,
INCREMENT, MIN_TORQ, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
Else
strSql = "INSERT INTO tblTest( REQUEST_NO, UNITS,
SAMPLE_NO, PROVIDED, CYCLE_NO, LPS, TRQ_SHUTOFF, TRQ_PT1, TRQ_PT2, TRQ_PT3,
TRQ_PT4, TRQ_PT5, TRQ_PT6, RUNDOWN, THRESHOLD, TIGHT_SPEED, DWELL_ON,
DWELL_OFF, WHEEL, WHEEL_NO, TEST_WASHER, TAKE_TO_FAILURE, STUD_PER_TEST,
STUD_PT_NO, CUST_SPEC, LOOKOUT, TEST_TYPE) " & _
"SELECT " & longID & " As NewTEST_ID, UNITS,
SAMPLE_NO, PROVIDED, CYCLE_NO, LPS, TRQ_SHUTOFF, TRQ_PT1, TRQ_PT2, TRQ_PT3,
TRQ_PT4, TRQ_PT5, TRQ_PT6, RUNDOWN, THRESHOLD, TIGHT_SPEED, DWELL_ON,
DWELL_OFF, WHEEL, WHEEL_NO, TEST_WASHER, TAKE_TO_FAILURE, STUD_PER_TEST,
STUD_PT_NO, CUST_SPEC, LOOKOUT, TEST_TYPE " & _
"FROM tblTest WHERE REQUEST_NO = " & .REQUEST_NO & ";"
DBEngine(0)(0).Execute strSql, dbFailOnError
End If
End With
rs.MoveNext
Wend
End Sub