กระทู้เก่าบอร์ด อ.Yeadram
        
           4,140   11		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        Code โชว์รูปสมาชิก      
    
      Dim filepath, picdir As String
Dim found As Boolean
Dim iid As Long
ChDir "D:\"
ChDir "D:\picX"
picdir = "D:\picX\"
    
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
found = False
filepath = picdir & Me![id_Card]
If dir(filepath & ".jpg") <> "" Then
filepath = filepath & ".jpg"
found = True
End If
If found Then
Me.Image1.Picture = filepath
Me.L_NoPic.Visible = False
Else
Me.Image1.Picture = "
Me.L_NoPic.Visible = True
End If
End If
ก๊อปโค๊ตมาแล้วใช้งานได้ดีครับ ติดตรงที่ พอเรียกสมาชิกคนที่ไม่มีเลข 13 หลัก
มันจะโชว์รูปคนก่อนหน้านี้ครับ เราจะกำหนดให้ เมื่อคนที่ไม่มีเลข 13 หลัก
ให้ไม่โชว์รูป จะไปแทรกตรงไหนครับ
    
  Dim found As Boolean
Dim iid As Long
ChDir "D:\"
ChDir "D:\picX"
picdir = "D:\picX\"
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
found = False
filepath = picdir & Me![id_Card]
If dir(filepath & ".jpg") <> "" Then
filepath = filepath & ".jpg"
found = True
End If
If found Then
Me.Image1.Picture = filepath
Me.L_NoPic.Visible = False
Else
Me.Image1.Picture = "
Me.L_NoPic.Visible = True
End If
End If
ก๊อปโค๊ตมาแล้วใช้งานได้ดีครับ ติดตรงที่ พอเรียกสมาชิกคนที่ไม่มีเลข 13 หลัก
มันจะโชว์รูปคนก่อนหน้านี้ครับ เราจะกำหนดให้ เมื่อคนที่ไม่มีเลข 13 หลัก
ให้ไม่โชว์รูป จะไปแทรกตรงไหนครับ
				11 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R11027    
        
  
      อาจารย์ครับ จากโค็ต ผมทำ Me.L_NoPic ไว้ครับสำหรับคนที่ไม่มีรูป เมื่อคนที่ไม่มีรูปมันจะโชว์ Me.L_NoPic
แต่ปัญหามันเกิดจาก คนไม่มีเลข 13 หลักครับ พอเลือกคนไม่มีเลข 13 หลัก มันจะโชว์รูปคนสุดท้ายที่มันโชว์อยู่
จากโค็ตบันทัดแรกครับ If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
จะเห็นว่ามีอ้าง เลข 13 หลักที่ไม่มีอยู่ด้วย แต่ผมไม่เข้าใจว่าจะประยุกต์ มันยังงัยครับ
ให้เมื่อไม่มีเลข 13 หลัก ให้โชว์ Me.L_NoPic ด้วย
รบกวนอาจารย์ด้วยครับ
    
  แต่ปัญหามันเกิดจาก คนไม่มีเลข 13 หลักครับ พอเลือกคนไม่มีเลข 13 หลัก มันจะโชว์รูปคนสุดท้ายที่มันโชว์อยู่
จากโค็ตบันทัดแรกครับ If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
จะเห็นว่ามีอ้าง เลข 13 หลักที่ไม่มีอยู่ด้วย แต่ผมไม่เข้าใจว่าจะประยุกต์ มันยังงัยครับ
ให้เมื่อไม่มีเลข 13 หลัก ให้โชว์ Me.L_NoPic ด้วย
รบกวนอาจารย์ด้วยครับ
        
    3 @R11029    
        
  
      ไม่มีเลข 13 หลัก = Me.id_Card เป็น null ใช่หรือเปล่าครับ
ถ้าใช่
จาก
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
เปลี่ยนเป็น
found = False
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
filepath = picdir & Me![id_Card]
If dir(filepath & ".jpg") <> "" Then
filepath = filepath & ".jpg"
found = True
End If
End If
If found Then
Me.Image1.Picture = filepath
Me.L_NoPic.Visible = False
Else
Me.Image1.Picture = "
Me.L_NoPic.Visible = True
End If
    
    
  ถ้าใช่
จาก
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
เปลี่ยนเป็น
found = False
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
filepath = picdir & Me![id_Card]
If dir(filepath & ".jpg") <> "" Then
filepath = filepath & ".jpg"
found = True
End If
End If
If found Then
Me.Image1.Picture = filepath
Me.L_NoPic.Visible = False
Else
Me.Image1.Picture = "
Me.L_NoPic.Visible = True
End If
        
    4 @R11030    
        
  
      แก้ (R11029)
ไม่ต้องสนใจประโยค "จาก ... " นะครับ ลืมลบ
    
  ไม่ต้องสนใจประโยค "จาก ... " นะครับ ลืมลบ
        
    5 @R11032    
        
	
	
      มีรูป กับ ไม่มีเลข  และ มีเลขกับไม่มีรูป
ถ้ามีเลขแล้วไม่มีรูป ก็ทำแบบ อาจารย์สันติสุขบอก ข้อ 1 หรือข้อ 2 (ทำเป็นภาพเล็กๆแค่เป็น จุดก็พอ)
แต่ถ้า มี รูปแล้วไม่มีเลข จะโชว์รูปหลังสุดที่แสดง
ผมทำแบบนี้ครับ ใช้ Eeeor Handle เข้ามาช่วยครับ
และฝัง Procedure ไว้ที่ Private Sub Form_Current() ทดลองดูนะครับ
----------------------------------------------------------------------------------
Private Sub Form_Current()
On Error GoTo fCurr:
Dim filepath, picdir As String
Dim found As Boolean
Dim iid As Long
ChDir "D:\"
ChDir "D:\picX"
picdir = "D:\picX\"
     
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
found = False
filepath = picdir & Me![id_Card]
If dir(filepath & ".jpg") <> "" Then
filepath = filepath & ".jpg"
found = True
End If
If found Then
Me.Image1.Picture = filepath
Me.L_NoPic.Visible = False
Else
Me.Image1.Picture = "
Me.L_NoPic.Visible = True
End If
End If
Exit Sub
fCurr:
Select Case Err
Case 2220 'ไม่พบไฟล์รูปภาพ
MsgBox "...ยังไม่มีภายถ่ายเก็บไว้ในฐานข้อมูล...", vbDefaultButton1, "Introduction"
DoCmd.Hourglass False
Exit Sub
Case 76 'ไม่พบ Drive หรือ Directory ที่ระบุ ( Path not Found) ปัญหาน่าจะอยู่ตรงนี้ครับ ไม่มีเลข ID ก็จะหา Path ไม่เจอ...
ChDir "D:\picX"
MkDir "picX" 'สร้างโฟลเดอร์ภายใต้ D:
Resume Next 'ทำคำสั่งที่ถัดจากที่ Error ก่อนหน้านี้
Case 2114 'หากเป็นภาพที่ถ่ายด้วยกล้องดิจิตอล (Digital Camera) รูปจะใหญ่เกินไปจนไม่สามารถเปิดได้แม้จะเป็น Jpg Format ก็ตาม..)
MsgBox Err & ":" & Err.Description, vbCritical, "Error"
MsgBox Err & "2114" & "...รูปมืดตึดตื๋อ ดูไมรู้เรื่อง ", vbCritical, "Error"
MsgBox "ภาพบางภาพอาจจะใหญ่เกินไปโปรแกรมไม่สามารถเปิดได้...", vbCritical, "´ดูภาพไม่ได้"
Case Else
MsgBox Err & ":" & Err.Description, vbCritical, "Error"
End Select
End Sub
    
  
  ถ้ามีเลขแล้วไม่มีรูป ก็ทำแบบ อาจารย์สันติสุขบอก ข้อ 1 หรือข้อ 2 (ทำเป็นภาพเล็กๆแค่เป็น จุดก็พอ)
แต่ถ้า มี รูปแล้วไม่มีเลข จะโชว์รูปหลังสุดที่แสดง
ผมทำแบบนี้ครับ ใช้ Eeeor Handle เข้ามาช่วยครับ
และฝัง Procedure ไว้ที่ Private Sub Form_Current() ทดลองดูนะครับ
----------------------------------------------------------------------------------
Private Sub Form_Current()
On Error GoTo fCurr:
Dim filepath, picdir As String
Dim found As Boolean
Dim iid As Long
ChDir "D:\"
ChDir "D:\picX"
picdir = "D:\picX\"
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
found = False
filepath = picdir & Me![id_Card]
If dir(filepath & ".jpg") <> "" Then
filepath = filepath & ".jpg"
found = True
End If
If found Then
Me.Image1.Picture = filepath
Me.L_NoPic.Visible = False
Else
Me.Image1.Picture = "
Me.L_NoPic.Visible = True
End If
End If
Exit Sub
fCurr:
Select Case Err
Case 2220 'ไม่พบไฟล์รูปภาพ
MsgBox "...ยังไม่มีภายถ่ายเก็บไว้ในฐานข้อมูล...", vbDefaultButton1, "Introduction"
DoCmd.Hourglass False
Exit Sub
Case 76 'ไม่พบ Drive หรือ Directory ที่ระบุ ( Path not Found) ปัญหาน่าจะอยู่ตรงนี้ครับ ไม่มีเลข ID ก็จะหา Path ไม่เจอ...
ChDir "D:\picX"
MkDir "picX" 'สร้างโฟลเดอร์ภายใต้ D:
Resume Next 'ทำคำสั่งที่ถัดจากที่ Error ก่อนหน้านี้
Case 2114 'หากเป็นภาพที่ถ่ายด้วยกล้องดิจิตอล (Digital Camera) รูปจะใหญ่เกินไปจนไม่สามารถเปิดได้แม้จะเป็น Jpg Format ก็ตาม..)
MsgBox Err & ":" & Err.Description, vbCritical, "Error"
MsgBox Err & "2114" & "...รูปมืดตึดตื๋อ ดูไมรู้เรื่อง ", vbCritical, "Error"
MsgBox "ภาพบางภาพอาจจะใหญ่เกินไปโปรแกรมไม่สามารถเปิดได้...", vbCritical, "´ดูภาพไม่ได้"
Case Else
MsgBox Err & ":" & Err.Description, vbCritical, "Error"
End Select
End Sub
        
    6 @R11033    
        
  
      คุณ PichaiTC ครับ มันโชว์เป็นช่องว่างครับ ชนิดข้อมูลเป็น Text ครับ
คุณ แหลมทอง ครับ โค๊ตเต็มผมก็เป็นแบบคุณเลยครับ น่าจะก๊อปจากแหล่งเดียวกัน
เพราะฉนั้นมันเลยใช้ไม่ไดครับ ขอบคุณมากครับ
    
  คุณ แหลมทอง ครับ โค๊ตเต็มผมก็เป็นแบบคุณเลยครับ น่าจะก๊อปจากแหล่งเดียวกัน
เพราะฉนั้นมันเลยใช้ไม่ไดครับ ขอบคุณมากครับ
        
    7 @R11109    
        
  
      Private Sub Form_Current() 
On Error GoTo fCurr:
Dim filepath, picdir As String
Dim found As Boolean
Dim iid As Long
ChDir "D:\"
ChDir "D:\picX"
picdir = "D:\picX\"
      
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
found = False
filepath = picdir & Me![id_Card]
If dir(filepath & ".jpg") <> "" Then
filepath = filepath & ".jpg"
found = True
End If
If found Then
Me.Image1.Picture = filepath
Me.L_NoPic.Visible = True
Else
Me.Image1.Picture = "
Me.L_NoPic.Visible = False
End If
End If
Exit Sub
fCurr:
Select Case Err
Case 2220 'ไม่พบไฟล์รูปภาพ
MsgBox "...ยังไม่มีภายถ่ายเก็บไว้ในฐานข้อมูล...", vbDefaultButton1, "Introduction"
DoCmd.Hourglass False
Exit Sub
Case 76 'ไม่พบ Drive หรือ Directory ที่ระบุ ( Path not Found) ปัญหาน่าจะอยู่ตรงนี้ครับ ไม่มีเลข ID ก็จะหา Path ไม่เจอ...
ChDir "D:\picX"
MkDir "picX" 'สร้างโฟลเดอร์ภายใต้ D:\
Resume Next 'ทำคำสั่งที่ถัดจากที่ Error ก่อนหน้านี้
Case 2114 'หากเป็นภาพที่ถ่ายด้วยกล้องดิจิตอล (Digital Camera) รูปจะใหญ่เกินไปจนไม่สามารถเปิดได้แม้จะเป็น Jpg Format ก็ตาม..)
MsgBox Err & ":" & Err.Description, vbCritical, "Error"
MsgBox Err & "2114" & "...รูปมืดตึดตื๋อ ดูไมรู้เรื่อง ", vbCritical, "Error"
MsgBox "ภาพบางภาพอาจจะใหญ่เกินไปโปรแกรมไม่สามารถเปิดได้...", vbCritical, "´ดูภาพไม่ได้"
Case Else
MsgBox Err & ":" & Err.Description, vbCritical, "Error"
End Select
End Sub TrueFalse
    
  On Error GoTo fCurr:
Dim filepath, picdir As String
Dim found As Boolean
Dim iid As Long
ChDir "D:\"
ChDir "D:\picX"
picdir = "D:\picX\"
If (IsNull(Me.id_Card) Or Me.id_Card = 0) = False Then
found = False
filepath = picdir & Me![id_Card]
If dir(filepath & ".jpg") <> "" Then
filepath = filepath & ".jpg"
found = True
End If
If found Then
Me.Image1.Picture = filepath
Me.L_NoPic.Visible = True
Else
Me.Image1.Picture = "
Me.L_NoPic.Visible = False
End If
End If
Exit Sub
fCurr:
Select Case Err
Case 2220 'ไม่พบไฟล์รูปภาพ
MsgBox "...ยังไม่มีภายถ่ายเก็บไว้ในฐานข้อมูล...", vbDefaultButton1, "Introduction"
DoCmd.Hourglass False
Exit Sub
Case 76 'ไม่พบ Drive หรือ Directory ที่ระบุ ( Path not Found) ปัญหาน่าจะอยู่ตรงนี้ครับ ไม่มีเลข ID ก็จะหา Path ไม่เจอ...
ChDir "D:\picX"
MkDir "picX" 'สร้างโฟลเดอร์ภายใต้ D:\
Resume Next 'ทำคำสั่งที่ถัดจากที่ Error ก่อนหน้านี้
Case 2114 'หากเป็นภาพที่ถ่ายด้วยกล้องดิจิตอล (Digital Camera) รูปจะใหญ่เกินไปจนไม่สามารถเปิดได้แม้จะเป็น Jpg Format ก็ตาม..)
MsgBox Err & ":" & Err.Description, vbCritical, "Error"
MsgBox Err & "2114" & "...รูปมืดตึดตื๋อ ดูไมรู้เรื่อง ", vbCritical, "Error"
MsgBox "ภาพบางภาพอาจจะใหญ่เกินไปโปรแกรมไม่สามารถเปิดได้...", vbCritical, "´ดูภาพไม่ได้"
Case Else
MsgBox Err & ":" & Err.Description, vbCritical, "Error"
End Select
End Sub TrueFalse
        
    8 @R11112    
        
  
      (R11033) 
"มันโชว์เป็นช่องว่างครับ ชนิดข้อมูลเป็น Text ครับ"
ตอบมาแบบนี้ไปต่อไม่ถูกเลยครับ
"มัน" คืออะไรครับ
Me.Image1 หรือ Me.L_NoPic ?
    
  "มันโชว์เป็นช่องว่างครับ ชนิดข้อมูลเป็น Text ครับ"
ตอบมาแบบนี้ไปต่อไม่ถูกเลยครับ
"มัน" คืออะไรครับ
Me.Image1 หรือ Me.L_NoPic ?
        
    9 @R11117    
        
  
      ขอโทษครับคุณPichaiTC
จาก (R11029) "ไม่มีเลข 13 หลัก = Me.id_Card เป็น null ใช่หรือเปล่าครับ "
ผมเลยตอบว่า "มันโชว์เป็นช่องว่างครับ ชนิดข้อมูลเป็น Text ครับ "
คือในตารางก็เป็นช่องว่าง พอมาแสดงใน Textbox มันก็เป็นช่องว่างด้วยครับ
คุณ Teerapat ครับ มันคืออะไรครับ
    
    
  จาก (R11029) "ไม่มีเลข 13 หลัก = Me.id_Card เป็น null ใช่หรือเปล่าครับ "
ผมเลยตอบว่า "มันโชว์เป็นช่องว่างครับ ชนิดข้อมูลเป็น Text ครับ "
คือในตารางก็เป็นช่องว่าง พอมาแสดงใน Textbox มันก็เป็นช่องว่างด้วยครับ
คุณ Teerapat ครับ มันคืออะไรครับ
        
    10 @R11118    
        
  
      อีกครั้งครับ......แลกเปลียนกันนะครับ ถูกมั่ง ผิดมั่งหวังว่าคงไม่ว่ากัน...เรียนรู้กันไป....ผิดเป็นครูครับ...ลอง Copy ไปวางเลยครับ  Action on Current  หรือไม่ก็ ลองใช้  ตรงนี้ครับที่น่้าสนใจ....    If ((IsNull(id_Card) Or id_Card = "")) Then
------------------------------------------------------
Private Sub Form_Current()
On Error GoTo Err_C
Dim filepath As String
Dim NamePic As String
filepath = "D:\picX"
NamePic = filepath & "\" & [id_Card] & ".jpg"
If ((IsNull(id_Card) Or id_Card = "")) Then
Me.L_NoPic.Visible = True
Me.Image1.Picture = ""
Else
Me.L_NoPic.Visible = False
Me.Image1.Picture = NamePic
End If
Exit_C:
Exit Sub
Err_C:
Me.Image1.Picture = ""
Me.L_NoPic.Visible = True
Resume Exit_C
    
End Sub
----------------------------------
    
    
  ------------------------------------------------------
Private Sub Form_Current()
On Error GoTo Err_C
Dim filepath As String
Dim NamePic As String
filepath = "D:\picX"
NamePic = filepath & "\" & [id_Card] & ".jpg"
If ((IsNull(id_Card) Or id_Card = "")) Then
Me.L_NoPic.Visible = True
Me.Image1.Picture = ""
Else
Me.L_NoPic.Visible = False
Me.Image1.Picture = NamePic
End If
Exit_C:
Exit Sub
Err_C:
Me.Image1.Picture = ""
Me.L_NoPic.Visible = True
Resume Exit_C
End Sub
----------------------------------
        
    11 @R11210    
        
    
      คุณแหลมทองครับ ผมลองเอาโค็ตใหม่ไปลอง ผลก็เหมือยเดิมครับ
พอดีผมไปหาสูตรที่อาจารย์ Yeadram เคยทำให้ไปแปลงนิดหน่อยมันใช้ได้ครับ
เอามาโพสมันโพสไม่ได้เลยไม่ได้โพสไว้ ลองหลายครั้งเลยเงียบไป
    
  พอดีผมไปหาสูตรที่อาจารย์ Yeadram เคยทำให้ไปแปลงนิดหน่อยมันใช้ได้ครับ
เอามาโพสมันโพสไม่ได้เลยไม่ได้โพสไว้ ลองหลายครั้งเลยเงียบไป
      Time: 0.0608s
    
      
		
1. กำหนด .Visible property ของ Image1 ให้เป็น False
2. สร้างภาพ .jpg ขึ้นมา ให้เป็นสีขาวทั้งหมด หรือจะสีอะไร หรือจะมีข้อความอะไรที่บอกว่า ไม่มีรูปภาพ ก็ได้ เราก็แสดงภาพนี้ในกรณีที่ไม่มีไฟล์รูปภาพแทน