แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - thaworn Panchan

หน้า: [1]
1
โอ้แย่แล้ว...พอดีเป็นเครื่องที่ทำงาน เค้า Block ไม่ให้ภายนอกเข้ามาได้ครับ....ให้ผมส่งไฟล์ไปให้ หรือ ให้ทำอย่างไรดีครับ....ขอบคุณครับ
แนบไฟล์ส่งมาใน Inbox เลยคับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

2
ธรรมดา มันจะมีให้ติ๊ก business กับ None commer...... ติ๊ก None แล้ว Next ยาวๆ พอติดตั้งเสร็จมันจะมี ID กับ password ของเรา ก็เอารหัสนั้นส่งให้ผมทาง Inbox ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

3
https://dl.teamviewer.com/download/TeamViewer_Setup.exe link

Link ตรงคับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

4
เข้าไปที่นี่ เลือกตัวฟรีครับ

https://www.teamviewer.com/th/ link
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

5
ถ้าแบบนี้ละครับ ถ้าไม่ได้ก็ teamviewer ไปดูให้ก็ได้นะครับ  :cool: :cool:

โค๊ด: [Select]
Private Sub TxtFindDapartment_GotFocus()
Dim strFindName As String
If Not IsNull(Me.Parent.TxtFindName) Then
Me.Parent.TxtFindName = Null
Me.Parent.TxtPicturePath = ""
strFindName = "SELECT * FROM [Personal_ST26] WHERE [MName] = null ;"
Me.Parent.RecordSource = strFindName
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

6
ไป Record แรกสุด DoCmd.GoToRecord,,acFirst
ไป Record ท้ายสุด docmd.GoToRecord,,acLast ครับ

โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

7
ถ้าแบบนี้ละครับ

โค๊ด: [Select]
Private Sub TxtFindDapartment_GotFocus()
Dim strFindName As String
If Not IsNull(Me.Parent.TxtFindName) Then
Me.Parent.TxtFindName = Null
Me.Parent.TxtPicturePath = ""
strFindName = "SELECT * FROM [Personal_ST26] WHERE [MName] = null ;"
Me.Parent.RecordSource = strFindName
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

8
สร้างฟอร์มให้ค้นหาข้อมูลบุคคลากร โดยให้ค้นได้ 2 ทาง เพื่อให้ผู้มาติดต่อใช้งานค้นหา คือ
1.ค้นจากชื่อ เลยสร้างฟอร์มให้มี datasource เป็นตาราง "ข้อมูลส่วนตัว" ใช้ค้นข้อมูลจากชื่อ เป็นฟอร์มหลัก  และ
2.ค้นจากแผนกงาน เลยสร้างเป็น subform ที่มี datasource เป็นตาราง"แผนกงาน" ใช้ค้นข้อมูลจากแผนกงาน เป็นฟอร์มย่อยที่อยู่ในฟอร์มหลัก (ข้อ 1.)
     ทีนี่อยากจะขอให้ช่วย คือ เมื่อผู้ใช้บริการคนแรก มา ใส่ชื่อพนักงาน ค้นหา แล้ว พบ และแสดงข้อมูลมาแล้ว แต่เมื่อผู้ใช้คบริการคนถัดไปมาจะค้นหาจากแผนกงาน แต่ข้อมูลของบุคคลากรคนเก่ายังค้างอยู่ที่หน้าจอทำให้เมื่อค้นจากแผนกงานได้ข้อมูลใหม่มาแล้วแต่หน้าจอฟอร์มหลักยังแสดงข้อมูลที่เกิดจากการค้นหาของคนแรกอยู่ จะล้างข้อมูลที่เกิดจากการค้นหาของคนแรกได้อย่างไรครับ...ขอขอบคุณครับ
ผมสมมุติ textbox ค้นหาจากชื่อว่า txtFindName
           textbox ค้นหาจากแผนกว่า txtFindDepartment
           Form หลักชื่อ FrmMain

ถ้าต้องการให้ล้างค่าที่กรอกไว้ของ txtFindName ออกไป ก็กำหนด Event GotFocus เอาก็ได้ครับเช่น

Private Sub txtFindDepartment_GotFocus()
Forms!frmMain.txtFindName = Null
Forms!frmMain.txtFindName.Requery
Me.txtFindDepartment.Requery
End Sub

ที่ผมสั่ง Forms!frmMain.txtFindName.Requery เผื่อว่าคุณใช้การแสดง การค้นหาโดยใช้ Criteria จาก Query
พอเราสั่ง = null แล้ว Requery ข้อมูลที่แสดงก็จะหายไปครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

9
เรียนอาจารย์
       ผมมีตาราง T1 ทีมี ฟิว ITEM=ใช้เก็บชื่อรูป และ Picture=เก็บพาทรูปภาพ ครับ 
       ที่ Form มี Text  ITEM และ Picture หากเรียกข้อมูล Item แล้วจะแสดง Picture ทันที
     
      คือพอแสดงแล้วผมอยากให้เปิดรูปภาพขึ้นมาเลยครับ จะต้องเขียน Code ยังไงครับ
      ปกติมันจะโชว์ Link แล้วต้องกดที่ Link ถึงจะเปิดให้ครับ
คือต้องการจะเปิดภาพ Auto ทันทีทีเรียกชื่อ Item ขึ้นมาถูกครับ

ขอบคุณครับ

คุณมี textbox ชื่อ item และ Picture ในฟอร์มแล้ว
ในตัวอย่างผมใช้เป็น txtitem กัย txtpicture นะครับ
ถ้าอยากแสดงรูปภาพ
ก็ควรมี กรอบรูปภาพ เพื่อใช้แสดงรูปภาพนะครับ


และ ที่แหล่งตัวควบคุมหรือ RecordSource กำหนดไปว่า  =txtpicture (อ้างอิงพาทจาก textbox txtpictureครับ)
ดูจากตัวอย่างแบบที่2

สอบถามเพิ่มเติมครับ การเก็บชื่อรูปกับ เก็บพาทรูปเป็นแบบไหน
  ชื่อรูปเช่น ITEM = 01.jpg  อย่างนี้ไหม เพราะการแสดงรูปได้ต้องมี พาท,ชื่อไฟล์,นามสกุลไฟล์ รวมเข้าด้วยกัน
  ส่วนพาทผมสมมุติ Picture = C:\Documents and Settings\office\My Documents\My Pictures\
หรือแบบนี้            Picture = C:\Documents and Settings\office\My Documents\My Pictures\01.่jpg
เพราะคำสั่งที่จะใช้มันจะไม่เหมือนกัน

รบกวนอธิบายเพิ่มเติมอีกนิดกว่าพาท และ ชื่อที่เก็บเป็นแบบไหนครับ
ส่วนการนำมาแสดงทำได้หลายแบบมาก
จากตัวอย่างแบบที่ 1 คุณลองไปกำหนด พาทรูปภาพ และ ชื่อรูปภาพที่มีเอาดูนะครับ
ถ้าชื่อ พาทกับชื่อไฟล์ แยกออกจากกันเราก็กำหนดให้มันรวมกันก่อนแสดง ลองดูที่ RecordSource ตัวอย่างที่ผมแนบไปนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

10
โค๊ด: [Select]
intCount = DCount("*", "[บุคคลากร]", "[ชื่อ-นามสกุล] Like """ & [Forms]![ชื่อฟอร์ม]![TxtFind] & "*""")
การทำงาน ถ้าที่ textbox ถ้าเราคีย์ กก ผลการทำงานคือนับถ้าข้อมูลมี กก* ครับ ถ้าข้อมูลมี กกข กกค กขค ผลนับจะเท่ากับ 2 แต่ถ้าพิมพ์ ค จะไม่เจอเพราะไม่ได้อยู่ด้านหน้าของข้อความครับ

คือด้านหลังของข้อความเป็นอะไรก็ได้ แต่จะนับถ้ามีด้านหน้าของข้อความไปเรื่อยๆครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

11
Private Sub CmdFind_Click()
Dim strFindName As String
Dim intCount As Integer

If IsNull(Me.TxtFind) Or (Me.TxtFind) = "" Then
MsgBox "ใส่ข้อมูลไม่ครบ โปรดตรวจสอบ"
Me.TxtFind.SetFocus
Else
strFindName = "SELECT * FROM [บุคคลากร] WHERE [ชื่อ-นามสกุล] LIKE '" & TxtFind & "*';"
Me.RecordSource = strFindName

intCount = DCount("*", "บุคคลากร", "[ชื่อ-นามสกุล] = '" & [Forms]![ชื่อฟอร์ม]![TxtFind] & "'")

If intCount > 1 Then
MsgBox "พบ " & intCount & " เรคคอร์ด", vbInformation, "ค้นหาRecord"

ElseIf intCount = 0 Then
MsgBox "ไม่พบข้อมูล", vbCritical, "ค้นหาRecord"
End If

Me.Requery
Me.TxtFind.SetFocus
Me.TxtFind = Null
End If
End Sub

ลองดูครับ ตรงชื่อฟอร์มที่ผมใส่สีแดง ใส่ชื่อฟอร์มเข้าไปด้วยนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

12
กำลังอยากได้อยู่พอดี ขอบคุณครับ :grin: :grin: :grin:
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

13
ไฟล์ที่แนบมาแตกไฟล์ไม่ได้ครับคุณปิ่นณรงค์

ปกติผม แตกไฟล์กับ 7zip ครับลองดูอันใหม่ครับว่าได้ไหม
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

14
ต้องกำหนดทุกฟอร์มเลยหรือเปล่าครับ แล้วถ้าเราปิดหรือออกจากโปรแกรม ความละเอียดหน้าจอจะกลับมาที่ความละเอียดปกติมั้ยครับ

เฉพาะ Event Form_Open ของฟอร์มล๊อกอินคับ เพราะมันต้องแสดงขึ้นมาก่อนอยู่แล้ว
ส่วนความละเอียดหน้าจอ ค่าปกติต้องดูว่ากำหนดที่เท่าไร ผมจะได้เพิ่ม Code คืนค่าปกติ เมื่อปิดโปรแกรม


แต่ถ้าเราจะให้มัน Shrinker หรือ Stretcher เดี่ยวขอลองทำดูก่อนนะครับ ได้ยังไงเดี่ยวมาอัพเดทผมว่าน่าจะพอทำได้อยู่คับ

โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

15
ถ้าต้องการให้แบบฟอร์ม พอดีกับจอของ Users ผมว่าน่าจะต้องมีการ lock spec ความละเอียดนะครับ
เช่น ตั้งไว้ที่ 1,024x768 ทุกเครื่อง รวมทั้งเครื่องที่สร้างฟอร์มด้วย
เพราะถ้าหลายๆเครื่องมีความหลากหลายในค่าความละเอียด ก็ไม่น่าจะเต็มจอได้ทุกจอนะครับ
ไม่รู้ผมเข้าใจถูกป่าว
ถ้าผิด ท่านผู้รู้ช่วยแก้ด้วยนะครับ

จากแนวคิิดของท่านงั้น ก็สร้างคำสั่งให้ปรับขนาดหน้าจอปลายทางอัตโนมัติเมื่อเปิดฟอร์ม หรือ Event ที่ต้องการไปเลยดีไหม เช่น อยากตั้ง ขนาด 1,024x768 กับทุกเครื่อง ก็ให้เปิดฟอร์มมาแล้ว ขนาดจะเปลี่ยนตามเลย Code ตามนี้ครับ

Code นี้วางใน Mudule

โค๊ด: [Select]
Type RECT
x1 As Long
y1 As Long
x2 As Long
y2 As Long
End Type
Declare Function GetDesktopWindow Lib "User32" () As Long
Declare Function GetWindowRect Lib "User32" _
(ByVal hWnd As Long, rectangle As RECT) As Long

Private Declare Function ChangeDisplaySettings Lib "User32" Alias _
"ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long
Private Declare Function EnumDisplaySettings Lib "User32" Alias _
"EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As _
Long, lpDevMode As Any) As Boolean
 
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const CCFORMNAME = 32
Const CCDEVICENAME = 32
 
Private Type DEVMODE
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
 
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
 
dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Public Function Change_Resolution(iWidth As Single, iHeight As Single)
Dim DevM As DEVMODE
Dim a As Boolean
Dim i As Long
Dim b As Long
i = 0
Do
a = EnumDisplaySettings(0&, i&, DevM)
i = i + 1
Loop Until (a = False)
DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
DevM.dmPelsWidth = iWidth
DevM.dmPelsHeight = iHeight
b = ChangeDisplaySettings(DevM, 0)
End Function
Function GetScreenResolution() As String
Dim R As RECT
Dim hWnd As Long
Dim RetVal As Long
hWnd = GetDesktopWindow()
RetVal = GetWindowRect(hWnd, R)
GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
End Function
Sub SetAutoScreen()
Call Change_Resolution(1024, 768) ' กำหนดขนาดตรงนี้
End Sub

ต่อมาไปกำหนด Event Form_Open

โค๊ด: [Select]
Private Sub Form_Open(Cancel As Integer)
Call SetAutoScreen
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

16
คือรบกวนสอบครับ ผมสร้างฟอร์มแต่ต้องการให้เวลาไปเปิดกับจอขนาดอื่่น ให้มันแสดงผลพอดีกับหน้าจอ ต้องทำไงครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

หน้า: [1]