กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
        
           612   3		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        เกี่ยวกับเรื่อง Not in list และเรื่องค่าใน form      
		
    
      เริ่มเรื่อง form ก่อนนะคับ คือว่า สร้างฟอร์มไว้นึงฟอร์ม หากใส่ตัวเลขลงไปใน listbox ทำอย่างไรให้ค่าไปเกิดขึ้นในตารางในทันทีทันใด เนื่องจากผมสร้างรายงาน โดยใช้ค่าจากตาราง เวลาสั่งพิมพ์เหมือนกันค่ายังไม่ได้ทำการ อัพเดตเลย 
เรื่อง Not in list เคยเปิดไปดูกระทู้ที่อาจารย์เคยตอบไว้ แต่เนื่องจากยังไม่สันทัดเรื่องการใช้โค้ดคำสั่งอยากรบกวนสอบถาม การประยุกต์โค้ดอาจารย์
 
Private Sub acPlaceType_NotInList(NewData As String, Response As Integer)
Dim dbs As Database, rst As Recordset
Set dbs = CurrentDb
   
Response = acDataErrContinue
If MsgBox("ไม่มีรายการนี้ ต้องการจะเพิ่มเข้าไปหรือไม่?", vbOKCancel) = vbOK Then
' Set Response argument to indicate that data is being added.
Response = acDataErrAdded
' Add string in NewData argument to a table tblDiscipline.
                 
With dbs
Set rst = .OpenRecordset("tblPlace")
rst.AddNew
rst!PlaceName = NewData
rst.Update
rst.Close
.Close
End With
   
Else
' If user chooses Cancel, suppress error message and undo changes.
Response = acDataErrContinue
End If
   
End Sub
 
รบกวนด้วยนะคับ ต้องการแค่ openform แต่ไม่รู้จะไปใส่ไว้ตรงช่วงไหนคับ
    
    
  เรื่อง Not in list เคยเปิดไปดูกระทู้ที่อาจารย์เคยตอบไว้ แต่เนื่องจากยังไม่สันทัดเรื่องการใช้โค้ดคำสั่งอยากรบกวนสอบถาม การประยุกต์โค้ดอาจารย์
Private Sub acPlaceType_NotInList(NewData As String, Response As Integer)
Dim dbs As Database, rst As Recordset
Set dbs = CurrentDb
Response = acDataErrContinue
If MsgBox("ไม่มีรายการนี้ ต้องการจะเพิ่มเข้าไปหรือไม่?", vbOKCancel) = vbOK Then
' Set Response argument to indicate that data is being added.
Response = acDataErrAdded
' Add string in NewData argument to a table tblDiscipline.
With dbs
Set rst = .OpenRecordset("tblPlace")
rst.AddNew
rst!PlaceName = NewData
rst.Update
rst.Close
.Close
End With
Else
' If user chooses Cancel, suppress error message and undo changes.
Response = acDataErrContinue
End If
End Sub
รบกวนด้วยนะคับ ต้องการแค่ openform แต่ไม่รู้จะไปใส่ไว้ตรงช่วงไหนคับ
				3 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R04528    
        
  
      ดีครับอาจารย์ ขอบคุณมากครับอาจารย์ที่ช่วยตอบ ( อิอิ อยากเห็นรูปอาจารย์บ้าง เอามาติดไว้หน้าเว็บพร้อมครอบครัวบ้างสิครับอาจารย์ )  
อาจารย์ครับ ผมสงสัยคำตอบที่ 2 คือว่าพอดีผมทำฟอร์มนึงไว้แล้วชื่อว่า Cars ก้อเลยคิดว่า จะพิมพ์ใน combo แต่เผอิญมีบางทะเบียนรถ เรายังไม่ได้ทำการลงประวัติไว้ก่อนเลยครับ ก้อเลยจะให้ nNot in list ช่วย แต่เผอิญ เปิดดูของอาจารย์แล้วก้อยังทำไม่ได้น่ะคับ เพราะเรื่องโค้ดไม่รู้เรื่องเลยครับ ไม่รู้ต้องใช้คำสั่งอะไร Docmd.openform แล้วอะไรต่อครับอาจารย์ ตรงไหนด้วยคับ With dbs ต้องใช้มั๊ยคับ ยังไงรบกวนอาจารย์รึว่า เพื่อน ๆ พี่ ๆที่แว๊บเข้ามาเจอ ตอบให้ด้วยนะคับ
    
    
  อาจารย์ครับ ผมสงสัยคำตอบที่ 2 คือว่าพอดีผมทำฟอร์มนึงไว้แล้วชื่อว่า Cars ก้อเลยคิดว่า จะพิมพ์ใน combo แต่เผอิญมีบางทะเบียนรถ เรายังไม่ได้ทำการลงประวัติไว้ก่อนเลยครับ ก้อเลยจะให้ nNot in list ช่วย แต่เผอิญ เปิดดูของอาจารย์แล้วก้อยังทำไม่ได้น่ะคับ เพราะเรื่องโค้ดไม่รู้เรื่องเลยครับ ไม่รู้ต้องใช้คำสั่งอะไร Docmd.openform แล้วอะไรต่อครับอาจารย์ ตรงไหนด้วยคับ With dbs ต้องใช้มั๊ยคับ ยังไงรบกวนอาจารย์รึว่า เพื่อน ๆ พี่ ๆที่แว๊บเข้ามาเจอ ตอบให้ด้วยนะคับ
        
    3 @R04529    
        
    
      ก็ตัดออกได้เลยครับ 
 
Private Sub acPlaceType_NotInList(NewData As String, Response As Integer)
    
Response = acDataErrContinue
If MsgBox("ไม่มีรายการนี้ ต้องการจะเพิ่มเข้าไปหรือไม่?", vbOKCancel) = vbOK Then
' Set Response argument to indicate that data is being added.
Response = acDataErrAdded
         
DoCmd.OpenForm "Form1",,,,acFormAdd
    
Else
' If user chooses Cancel, suppress error message and undo changes.
Response = acDataErrContinue
End If
    
End Sub
 
แทน Form1 ด้วยชื่อฟอร์มเป้าหมายครับ
 
    
    
  Private Sub acPlaceType_NotInList(NewData As String, Response As Integer)
Response = acDataErrContinue
If MsgBox("ไม่มีรายการนี้ ต้องการจะเพิ่มเข้าไปหรือไม่?", vbOKCancel) = vbOK Then
' Set Response argument to indicate that data is being added.
Response = acDataErrAdded
DoCmd.OpenForm "Form1",,,,acFormAdd
Else
' If user chooses Cancel, suppress error message and undo changes.
Response = acDataErrContinue
End If
End Sub
แทน Form1 ด้วยชื่อฟอร์มเป้าหมายครับ
      Time: 0.0628s
    
      
		
ลองใช้คำสั่งนี้ดูครับ
DoCmd.RunCommand acCmdSaveRecord
หรือจะค้นหาด้วยคำว่า acCmdSaveRecord เพื่อดูโค้ดตัวอย่างอื่นๆ ในกระทู้เก่าครับ
คำถามที่ 2
จากโค้ด ผมได้ใช้กับ Combo Box ชื่อ acPlaceType โดยใช้กับเหตุการณ์ Not In List
ซึ่งเป็นการเพิ่มเข้าไปลงไปในฟีลด์ชื่อ PlaceName ในตารางชื่อ tblPlace ครับ