แสดงกระทู้

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 - PNR

หน้า: 1 2 3 [4] 5 6 7 ... 46
55
ไปที่ VBA Editor ไปที่ TOOL > References
ไปกดติ๊กเลือก Microsoft Excel xx.x Object Library  มาด้วยครับ


56
ไปที่ VBA Editor ไปที่ TOOL > References
ไปกดติ๊กเลือก Microsoft Excel xx.x Object Library  มาด้วยครับ

57
ใช้วิธีการเดี่ยวกับการกำหนดจัดกึ่งกลางนะครับ แต่เพิ่มโค๊ดเข้าไปอีกนิดเช่น

    Dim objExcelApp As Excel.Application
    Dim wb As Excel.Workbook
    Dim sht As Object
    Dim sFilename  As String
   
    sFilename = "E:\ExportedResults1.xls"
    DoCmd.OutputTo acOutputQuery, "ชื่อตาราง", acFormatXLS, sFilename
   
Set objExcelApp = Excel.Application
Set wb = objExcelApp.Workbooks.Open(sFilename)
Set sht = wb.Worksheets(1)
objExcelApp.Visible = True
sht.Columns("A:W").HorizontalAlignment = xlCenter
sht.Columns("A:W").EntireColumn.AutoFit
sht.Range("A1").Value = "ไอดี"    'A1,B1,C1 คือหัวของคอลัมน์
sht.Range("B1").Value = "ชื่อ"
sht.Range("C1").Value = "สกุล"


wb.Save
wb.Close
objExcelApp.Quit
Set objExcelApp = Nothing
End Sub

58
คิวรี่ไม่สามารถจัดกึ่งกลางเวลา export ได้ครับ
แต่เราสามารถใช้ การเขียนโค๊ดเปิดไฟล์ที่ Export ไปแล้ว มาแก้ไขเช่นจัดกึ่งกลาง ทำให้เนื้อหาพอดีกับคอลั่มน์ได้ครับเช่น

Private Sub export_Click()
    Dim objExcelApp As Excel.Application
    Dim wb As Excel.Workbook
    Dim sht As Object
    Dim sFilename  As String
   
    sFilename = "E:\ExportedResults1.xls"  'เลือกตำแหน่งของไฟล์ที่ต้องการ Export และ เปิดมาแก้ไข
    DoCmd.OutputTo acOutputQuery, "ชื่อคิวรี่", acFormatXLS, sFilename  'โค้ดสั่ง Export ตามโค๊ดเดิมของท่านได้เลย
   
Set objExcelApp = Excel.Application
Set wb = objExcelApp.Workbooks.Open(sFilename)
Set sht = wb.Worksheets(1)
objExcelApp.Visible = True
sht.Columns("A:W").HorizontalAlignment = xlCenter   'กำหนดให้ column A ถึง W ของ Sheet จัดกึ่งกลาง จะเอาถึงคอลั่มน์ไหนก็กำหนดเอาได้เลย
sht.Columns("A:W").EntireColumn.AutoFit 'กำหนดให้คอลัมน์พอดีกับข้อมูล
wb.Save  'สั่งบันทึก
wb.Close  'สั่งปิดไฟล์
objExcelApp.Quit 'สั่งจบการทำงาน
Set objExcelApp = Nothing
End Sub

59
ใช้ IIF เช็คเอาครับ เช่นถ้าข้อมูลในฟิลล์คำนวนนั้นว่าง ไม่สามารถคำนวนได้ให้ null หรือจะใส่ว่า ไม่มีข้อมูล ก็ได้ครับ
ถ้าคำนวนได้ก็ให้ คำนวน เพื่อตัด error นั้นออกไป

เช่น  คำนวนในคิวรี่ โดยฟิลล์เก็บวันเกิดชื่อ Dateofbirth

AGE: IIf(IsNull([Dateofbirth]),"ไม่มีข้อมูล",....คำนวนอายุ.....)

60
ลองแบบนี้ครับ

โค๊ด: [Select]
Option Explicit

Private Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long



Private Const HWND_TOPMOST = -1

Private Const HWND_NOTOPMOST = -2

Private Const SWP_NOMOVE = &H2

Private Const SWP_NOSIZE = &H1

 

Public Sub On_Top(ByVal lhWnd As Long)

  SetWindowPos lhWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

End Sub

 

Public Sub NotOn_Top(ByVal lhWnd As Long)

  SetWindowPos lhWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

End Sub

61
ต้องดูว่า MS Office ใช้กี่ Bit

ครับ ถ้า 32bit ไม่น่าจะมีปัญหาอะไร
แต่ถ้า 64 bit ต้องมีคำว่า prtSafe ด้วย เช่น

Private declare prtsafe function ...........................

แดงแบบเดิมเลยครับ





ผม 64 บิทครับ
Copy codeมาหน่อยครับ
เอาเป็นตัวอักษรไม่เอาเป็นรูปนะครับ
ผมจะได้ copy มาแก้ให้ได้

62
ห้อง MS Access / : Login กด Enter ทีเดียว
« เมื่อ: 18 ส.ค. 64 , 12:03:19 »
ปรับโค๊ดเป็นแบบนี้นะครับ

เอาโค้ดในการล๊อกอินไปไว้ใน Event On Enter ของปุ่มเช่น

โค๊ด: [Select]
Private Sub Command4_Enter()
Dim fpass As String, fusername As String
If IsNull(Me.UserBox) Then
MsgBox "กรุณาระบุ UserName", vbInformation, "ข้อผิดพลาด"
Exit Sub
ElseIf IsNull(Me.PassBox) Then
MsgBox "กรุณาระบุ Password", vbInformation, "ข้อผิดพลาด"
Else
fusername = Nz(DLookup("[UserName]", "UserV", "[UserName]='" & Me.UserBox & "'"))
If fusername = "" Then
    MsgBox "ชื่อผู้ใช้ไม่ถูกต้อง", vbCritical, "ไม่พบชื่อผู้ใช้งาน"
Else
        fpass = Nz(DLookup("[Password]", "UserV", "[UserName]='" & Me.UserBox & "'"))
       If fpass = Me.PassBox Then
            DoCmd.Close acForm, Me.name
            DoCmd.OpenForm "PIScreen_vaccine"
          Else
                    MsgBox "รหัสผ่านไม่ถูกต้อง", vbCritical, "พบข้อผิดพลาด"
    End If
    End If
    End If
End Sub

ส่วนของการเรียกใช้ ให้ใส่ไว้ใน Event OnClick หรือ AfterUpdate ของ คอนโทรล เช่น

โค๊ด: [Select]
Private Sub PassBox_AfterUpdate()
Command4_Enter
End Sub

โค๊ด: [Select]
Private Sub BtnLogIn_Click()
Command4_Enter
End Sub

63
ต้องดูว่า MS Office ใช้กี่ Bit

ครับ ถ้า 32bit ไม่น่าจะมีปัญหาอะไร
แต่ถ้า 64 bit ต้องมีคำว่า prtSafe ด้วย เช่น

Private declare prtsafe function ...........................

64
ห้อง MS Access / : Login กด Enter ทีเดียว
« เมื่อ: 18 ส.ค. 64 , 11:49:32 »
ที่ปุ่ม ใส่โค้ดใน Event On_Enter ได้เลยครับ

65
สอบถามรายละเอียดเพิ่มเติม ครับ
ส่งทาง Inbox ไปแล้ว

66
ห้อง MS Access / : สอบถามโค้ดไม่ตก Else
« เมื่อ: 17 ส.ค. 64 , 10:33:35 »
จากโค๊ดด้านบน

ถ้าใส่ User ถูก และถ้ารหัสผ่านผิดน่าจะขึ้นแจ้งเตือนได้ครับ
แต่ถ้าใส่ User ผิด การแจ้งเตือนจะไม่แสดง
ลองปรับโค๊ดเป็นแบบนี้

โค๊ด: [Select]
Dim fpass As String, fusername As String
If IsNull(Me.Userbox) Then
MsgBox "กรุณาระบุ UserName", vbInformation, "ข้อผิดพลาด"
Exit Sub
ElseIf IsNull(Me.PassBox) Then
MsgBox "กรุณาระบุ Password", vbInformation, "ข้อผิดพลาด"
Else
fusername = Nz(DLookup("[UserName]", "UserV", "[UserName]='" & Me.Userbox & "'"))
If fusername = "" Then
    MsgBox "ชื่อผู้ใช้ไม่ถูกต้อง", vbCritical, "ไม่พบชื่อผู้ใช้งาน"   
Else
        fpass = Nz(DLookup("[Password]", "UserV", "[UserName]='" & Me.Userbox & "'"))
       If fpass = Me.PassBox Then
         
          DoCmd.OpenForm "PIScreen_vaccine", acNormal, "", "", , acNormal
       Else
          MsgBox "รหัสผ่านไม่ถูกต้อง", vbCritical, "พบข้อผิดพลาด"         
    End If
    End If
    End If

67
คิวรี่แสดงสีไม่ได้

แต่ใช้การเช็คค่าจากคิวรี่ไปแสดงลองดูตัวอย่าง
https://www.thai-access.com/index.php?topic=438.msg1952#msg1952

68
อ้างอิง ฟอร์มหลัก ก่อนจะ อ้างอิงซัพฟอร์มครับ
อาจจะใช้   Me.PTT1.Form.TextIDCard

69
กดไปที่มุมมองออกแบบ ตรงด้านล่างจะมีให้จัดเรียงลำดับ กดเลือก ไม่เรียงลำดับ แล้วกดบันทึก มันจะหายไปเอง

70
ลองดูกระทู้นี้ ถ้าเป็นเครื่องใหม่ต้องตั้งค่าก่อนหรือเปล่าครับ
ลองดู 2 กระทู้นี้
https://www.thai-access.com/yeadram_view.php?topic_id=2489
และ
https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-dsn-windows-5-2.html

71
ลองเข้าทางนี้ดูก่อนว่าได้หรือไม่ หรือปุ่มลัดกด Alt + 11


ถ้าเข้าได้แล้วลองไปกดเข้าที่เคยเกิด ปัญหาอีกทึว่าหายไหม

72
นำไปใช้เครื่องอื่นๆ ก่อนใช้งานเปิดการตั้งค่า trust center ทุกครั้ง ลองดูกระทู้นี้
https://www.thai-access.com/index.php?topic=1024.msg4510#msg4510

หน้า: 1 2 3 [4] 5 6 7 ... 46