กระทู้เก่าบอร์ด อ.Yeadram
        
           1,466   11		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        สอบถามการ Copy Record ค่ะ      
    
      มีนอยากถามอาจารย์เรื่องคัดลอก Record ค่ะ
หรือเปล่ายังไม่แน่ใจค่ะ เพราะยังไม่ได้บันทึกข้อมูลเข้าไปในตาราง
คือมีนมี BoxNum และ ArtNum ที่ตาราง TB1
ที่หน้าพอร์มหลักมี TEXT1 เป็นค่าเริ่มต้นของ BoxNum
TEXT2 เป็นค่าสุดท้ายของ BoxNum
ArtNum เก็บค่าสินค้า
มีปุ่ม CMDใช้ควบคุมการทำงาน
เช่นหากมีน ใส่ค่า TEXT1=50 , TEXT2=53 ,ArtNum=AAA
BoxNum ArtNum
50 AAA
51 AAA
52 AAA
53 AAA
มีนจะเขียนคำสั่งที่ปุ่ม CMD ยังไงค่ะ
ขอบคุณค่ะ
    
  หรือเปล่ายังไม่แน่ใจค่ะ เพราะยังไม่ได้บันทึกข้อมูลเข้าไปในตาราง
คือมีนมี BoxNum และ ArtNum ที่ตาราง TB1
ที่หน้าพอร์มหลักมี TEXT1 เป็นค่าเริ่มต้นของ BoxNum
TEXT2 เป็นค่าสุดท้ายของ BoxNum
ArtNum เก็บค่าสินค้า
มีปุ่ม CMDใช้ควบคุมการทำงาน
เช่นหากมีน ใส่ค่า TEXT1=50 , TEXT2=53 ,ArtNum=AAA
BoxNum ArtNum
50 AAA
51 AAA
52 AAA
53 AAA
มีนจะเขียนคำสั่งที่ปุ่ม CMD ยังไงค่ะ
ขอบคุณค่ะ
				11 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R23160    
        
  
      ก็น่าจะเขียนประมาณนี้นะครับ
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("TB1", dbOpenDynaset) ' TB1 ชื่อตารางเป้าหมาย
Dim i As Long
For i = Me.Text1 To Me.Text2 ' ลูปตามค่า Text1 ถึง Text2
rs.AddNew
rs!BoxNum = i
rs!ArtNum = Me.ArtNum ' เซฟค่า ArtNum ตามค่า Text ArtNum บนฟอร์ม
rs.Update
Next
rs.Close: Set rs = Nothing
ประมาณนี้ครับ ปรับใช้ดูครับ
    
  Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("TB1", dbOpenDynaset) ' TB1 ชื่อตารางเป้าหมาย
Dim i As Long
For i = Me.Text1 To Me.Text2 ' ลูปตามค่า Text1 ถึง Text2
rs.AddNew
rs!BoxNum = i
rs!ArtNum = Me.ArtNum ' เซฟค่า ArtNum ตามค่า Text ArtNum บนฟอร์ม
rs.Update
Next
rs.Close: Set rs = Nothing
ประมาณนี้ครับ ปรับใช้ดูครับ
        
    3 @R23163    
        
  
      ขอบคุณค่ะอาจารย์ TTT
หนูขอลองก่อนน่ะค่ะ เดี๋ยวกลับมาแจ้งค่ะ
    
    
  หนูขอลองก่อนน่ะค่ะ เดี๋ยวกลับมาแจ้งค่ะ
    
        
    4 @R23164    
        
  
      เย่ๆๆๆ ได้แล้วค่ะ อาจารย์ TTT      
 
น้ำตาจะไหลค่ะ ขอบคุณจริงๆค่ะ อาจารย์
ขอถามอีกนิดค่ะ ถ้าหนูจะเช็คก่อนว่า
ข้อมูล ArtNum ที่ BoxNum ที่จะบันทึกมีซ้ำ
และให้แจ้งเตือนจะ เขียนไว้ตรงไหน ยังไงค่ะ
ขอบคุณอีกครั้งค่ะ
    
  
 
น้ำตาจะไหลค่ะ ขอบคุณจริงๆค่ะ อาจารย์
ขอถามอีกนิดค่ะ ถ้าหนูจะเช็คก่อนว่า
ข้อมูล ArtNum ที่ BoxNum ที่จะบันทึกมีซ้ำ
และให้แจ้งเตือนจะ เขียนไว้ตรงไหน ยังไงค่ะ
ขอบคุณอีกครั้งค่ะ
        
    5 @R23165    
        
  
          If DCount("ArtNum", "TB1", "ArtNum='" & Me.ArtNum & "'") = 0 Then
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("TB1", dbOpenDynaset)
Dim i As Long
For i = Me.Text1 To Me.Text2
rs.AddNew
rs!BoxNum = i
rs!ArtNum = Me.ArtNum
rs.Update
Next
rs.Close: Set rs = Nothing
Else
MsgBox "ข้อมูลนี้ซ้ำกับฐานข้อมูลเดิม", , "แจ้งเตือน"
End If
    
    
  Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("TB1", dbOpenDynaset)
Dim i As Long
For i = Me.Text1 To Me.Text2
rs.AddNew
rs!BoxNum = i
rs!ArtNum = Me.ArtNum
rs.Update
Next
rs.Close: Set rs = Nothing
Else
MsgBox "ข้อมูลนี้ซ้ำกับฐานข้อมูลเดิม", , "แจ้งเตือน"
End If
        
    6 @R23166    
        
  
      โหเก่งจังค่ะ
ขอบคุณอาจารย์ค่ะ
 
เที่ยวสงกรานต์ให้สนุกนะค่ะ
ขอบคุณค่ะ
งานหนูส่งก่อนปิด Summer พอดีขอบคุณค่ะ
    
    
  ขอบคุณอาจารย์ค่ะ
 
เที่ยวสงกรานต์ให้สนุกนะค่ะ
ขอบคุณค่ะ
งานหนูส่งก่อนปิด Summer พอดีขอบคุณค่ะ
        
    7 @R23167    
        
  
      อาจารย์ค่ะ
พอลองแล้ว มันบอกซ้ำทุกครั้งเลยค่ะ
แล้วตัว BoxNum
ไม่ต้องเช็คเหลอค่ะ เพราะ ArtNum ส่วนใหญ่จะคงที่ แล้วไปเช็ค BoxNum
ว่ามีซ้ำหรือไม่
เช่นในฐานข้อมูลมี
ArtNum = AAA , BoxNum=01
ArtNum = AAA , BoxNum=02
พอเราเอาเข้าไปใหม่
ArtNum = AAA , BoxNum=02
ArtNum = AAA , BoxNum=03
พอเจอ ArtNum = AAA , BoxNum=02 ก็จะแจ้งเตือนค่ะว่าซ้ำ
เหมือนว่าจะต้องเช็คทั้ง 2 ค่าค่ะ
แต่ Code อาจารย์ไม่มีเช็ค BoxNum หรือเปล่าค่ะ หนูดัดแปลงไม่ค่อยเก่งค่ะ
คงต้องรบกวนอีกครั่้งค่ะ
หนูจะพยามศึกษา SQL และ Funtionค่ะ แต่ตอนนี้คงต้องรบกวนอาจารย์ก่อน
ขอบคุณค่ะ
    
    
  พอลองแล้ว มันบอกซ้ำทุกครั้งเลยค่ะ
แล้วตัว BoxNum
ไม่ต้องเช็คเหลอค่ะ เพราะ ArtNum ส่วนใหญ่จะคงที่ แล้วไปเช็ค BoxNum
ว่ามีซ้ำหรือไม่
เช่นในฐานข้อมูลมี
ArtNum = AAA , BoxNum=01
ArtNum = AAA , BoxNum=02
พอเราเอาเข้าไปใหม่
ArtNum = AAA , BoxNum=02
ArtNum = AAA , BoxNum=03
พอเจอ ArtNum = AAA , BoxNum=02 ก็จะแจ้งเตือนค่ะว่าซ้ำ
เหมือนว่าจะต้องเช็คทั้ง 2 ค่าค่ะ
แต่ Code อาจารย์ไม่มีเช็ค BoxNum หรือเปล่าค่ะ หนูดัดแปลงไม่ค่อยเก่งค่ะ
คงต้องรบกวนอีกครั่้งค่ะ
หนูจะพยามศึกษา SQL และ Funtionค่ะ แต่ตอนนี้คงต้องรบกวนอาจารย์ก่อน
ขอบคุณค่ะ
        
    8 @R23172    
        
  
      เรียนอาจารย์ที่เคารพค่ะ
หนูได้ลองดัดแปลงจากอาจารย์ เอา Code ที่หนูดัดแปลงเลยแล้วกันน่ะค่ะ
Private Sub CMD12_Click()
Dim rs As DAO.Recordset
Dim i As Long
Dim X As Long
Set rs = CurrentDb.OpenRecordset("TB_QryDETAIL", dbOpenDynaset) ' TB1 ชื่อตารางเป้าหมาย
                                
If DCount("Bar", "TB_QryDETAIL", "Bar = Me.X") = 0 Then
For i = Me.Tx1 To Me.Tx2 ' ลูปตามค่า Tx1 ถึง Tx2
rs.AddNew
rs!BOX_NUM = i
rs!PART_NUM = Me.PART_NUM ' เซฟค่า PART_NUM ตามค่า Tx3 บนฟอร์ม
rs!Bar = Me.PART_NUM & " " & Format([i], "0000") ' เซฟค่า BAR เอามาจาก PART_NUM+ค่าว่าง+ค่า i ที่Box_NUM
X = rs!Bar
rs.Update
Next
rs.Close: Set rs = Nothing
Else
MsgBox "ข้อมูลนี้ซ้ำกับฐานข้อมูลเดิม", , "แจ้งเตือน"
Exit Sub
End If
                    
End Sub
คือหนู่ไม่รู้จะเช็ค 2 พิวส์พร้อมกันยังไง เลยเอามารวมกันก่อนที่
rs!Bar = Me.PART_NUM & " " & Format([i], "0000")
แล้วเก็บค่าที่ X = rs!Bar
แล้วค่อยมาเช็คว่าซ้ำ แต่ก็ยังไม่ได้ค่ะ ช่วยรบกวนดูให้หนูหน่อยค่ะ
If DCount("Bar", "TB_QryDETAIL", "Bar = Me.X") = 0 Then
ว่าจะแก้ยังไงค่ะ มันก็ยังบอกว่าซ้ำทุกครั้ง ไม่ว่าข้อมูลจริงจะไม่ซ้ำก็ตาม
    
    
  หนูได้ลองดัดแปลงจากอาจารย์ เอา Code ที่หนูดัดแปลงเลยแล้วกันน่ะค่ะ
Private Sub CMD12_Click()
Dim rs As DAO.Recordset
Dim i As Long
Dim X As Long
Set rs = CurrentDb.OpenRecordset("TB_QryDETAIL", dbOpenDynaset) ' TB1 ชื่อตารางเป้าหมาย
If DCount("Bar", "TB_QryDETAIL", "Bar = Me.X") = 0 Then
For i = Me.Tx1 To Me.Tx2 ' ลูปตามค่า Tx1 ถึง Tx2
rs.AddNew
rs!BOX_NUM = i
rs!PART_NUM = Me.PART_NUM ' เซฟค่า PART_NUM ตามค่า Tx3 บนฟอร์ม
rs!Bar = Me.PART_NUM & " " & Format([i], "0000") ' เซฟค่า BAR เอามาจาก PART_NUM+ค่าว่าง+ค่า i ที่Box_NUM
X = rs!Bar
rs.Update
Next
rs.Close: Set rs = Nothing
Else
MsgBox "ข้อมูลนี้ซ้ำกับฐานข้อมูลเดิม", , "แจ้งเตือน"
Exit Sub
End If
End Sub
คือหนู่ไม่รู้จะเช็ค 2 พิวส์พร้อมกันยังไง เลยเอามารวมกันก่อนที่
rs!Bar = Me.PART_NUM & " " & Format([i], "0000")
แล้วเก็บค่าที่ X = rs!Bar
แล้วค่อยมาเช็คว่าซ้ำ แต่ก็ยังไม่ได้ค่ะ ช่วยรบกวนดูให้หนูหน่อยค่ะ
If DCount("Bar", "TB_QryDETAIL", "Bar = Me.X") = 0 Then
ว่าจะแก้ยังไงค่ะ มันก็ยังบอกว่าซ้ำทุกครั้ง ไม่ว่าข้อมูลจริงจะไม่ซ้ำก็ตาม
        
    9 @R23173    
        
  
      ลองอย่างนี้ดูครับ
If IsNumeric(Me.Text1) And IsNumeric(Me.Text2) Then
If Me.Text1 > Me.Text2 Then
MsgBox "ค่า Text1 ห้ามน้อยกว่า Text2", , "แจ้งเตือน"
Else
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("TB1", dbOpenDynaset)
Dim i As Long
For i = Me.Text1 To Me.Text2
If DCount("BoxNum", "TB1", "ArtNum='" & Me.ArtNum & "' AND BoxNum=" & i) = 0 Then
rs.AddNew
rs!BoxNum = i
rs!ArtNum = Me.ArtNum
rs.Update
Else
MsgBox Me.ArtNum & " " & i & " ซ้ำกับฐานข้อมูลเดิม ", , "แจ้งเตือน"
End If
Next
rs.Close: Set rs = Nothing
End If
Else
MsgBox "ค่า Text1 และ Text2 ต้องเป็นตัวเลขเท่านั้น", , "แจ้งเตือน"
End If
    
    
  If IsNumeric(Me.Text1) And IsNumeric(Me.Text2) Then
If Me.Text1 > Me.Text2 Then
MsgBox "ค่า Text1 ห้ามน้อยกว่า Text2", , "แจ้งเตือน"
Else
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("TB1", dbOpenDynaset)
Dim i As Long
For i = Me.Text1 To Me.Text2
If DCount("BoxNum", "TB1", "ArtNum='" & Me.ArtNum & "' AND BoxNum=" & i) = 0 Then
rs.AddNew
rs!BoxNum = i
rs!ArtNum = Me.ArtNum
rs.Update
Else
MsgBox Me.ArtNum & " " & i & " ซ้ำกับฐานข้อมูลเดิม ", , "แจ้งเตือน"
End If
Next
rs.Close: Set rs = Nothing
End If
Else
MsgBox "ค่า Text1 และ Text2 ต้องเป็นตัวเลขเท่านั้น", , "แจ้งเตือน"
End If
        
    10 @R23175    
        
  
      พอดีเมื่อวานลองกลับไปทำแล้ว
ผลปรากฏว่า
ได้แล้วค่ะ ดัดแปลงตามอาจารตอบล่าสุดเลย
ขอบคุณอาจารย์ TT มากค่ะ
    
    
  ผลปรากฏว่า
ได้แล้วค่ะ ดัดแปลงตามอาจารตอบล่าสุดเลย
ขอบคุณอาจารย์ TT มากค่ะ
        
    11 @R23176    
        
    
      แก้ไขนิดนะครับ ตรงบรรทัดนี้
If Me.Text1 > Me.Text2 Then
เปลี่ยนเป็นอย่างนี้ครับ เพื่อให้เป็นเป็นจำนวนตัวเลข ไม่งั้นจะเทียบค่าผิดครับ
If Cint(Me.Text1) > Cint(Me.Text2) Then
    
  If Me.Text1 > Me.Text2 Then
เปลี่ยนเป็นอย่างนี้ครับ เพื่อให้เป็นเป็นจำนวนตัวเลข ไม่งั้นจะเทียบค่าผิดครับ
If Cint(Me.Text1) > Cint(Me.Text2) Then
      Time: 0.0719s
    
      
		
ยังคิดไม่ออกว่าจะเขียนไปแนบไหน
รบกวนอาจารย์ด้วยน่ะค่ะ
ขอบคุณค่ะ