แสดงกระทู้

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 ... 32
37
ห้อง MS Access / : Login กด Enter ทีเดียว
« เมื่อ: 18 ส.ค. 64 , 11:49:32 »
ที่ปุ่ม ใส่โค้ดใน Event On_Enter ได้เลยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

38
ห้อง 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
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

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

แต่ใช้การเช็คค่าจากคิวรี่ไปแสดงลองดูตัวอย่าง
https://www.thai-access.com/index.php?topic=438.msg1952#msg1952
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

40
อ้างอิง ฟอร์มหลัก ก่อนจะ อ้างอิงซัพฟอร์มครับ
อาจจะใช้   Me.PTT1.Form.TextIDCard
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

41
กดไปที่มุมมองออกแบบ ตรงด้านล่างจะมีให้จัดเรียงลำดับ กดเลือก ไม่เรียงลำดับ แล้วกดบันทึก มันจะหายไปเอง
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

42
ลองดูกระทู้นี้ ถ้าเป็นเครื่องใหม่ต้องตั้งค่าก่อนหรือเปล่าครับ
ลองดู 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
โพสต์นี้ได้รับคำขอบคุณจาก: Jiw Jewel

43
นำไปใช้เครื่องอื่นๆ ก่อนใช้งานเปิดการตั้งค่า trust center ทุกครั้ง ลองดูกระทู้นี้
https://www.thai-access.com/index.php?topic=1024.msg4510#msg4510
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

44
ลองเพิ่มตรงสีแดงเข้าไปว่าได้ไหม
  Set xlapp = CreateObject("excel.application")
  With xlApp
        .Visible = True
        .DisplayFullScreen = True
        .Workbooks.Add
        .Sheets("Sheet1").Select
        .ActiveSheet.Range("A2").CopyFromRecordset rsClone
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

45
ลองดูกระทู้นี้ครับ

แนะนำให้มี ตาราง User และมีฟิลล์ UserLevel เพื่อใช้ในการกำหนดสิทธิ์การเข้าถึงหรือการมองเห็น
และทำฟอร์มแยกออกมา ตามสิทธิ์ที่สามารถใช้ได้ดีกว่าครับ
โดยจากโค้ดด้านล่างให้ใช้การ selete Case หรือใช้ IF เข้ามาเช็คเงื่อนไขเช่น
IF Flevel = 1 then
docmd.OpenForm "admin"
elseif Flevel = 2 then
Docmd.openform "User"
End if

ส่วนโค้ดไปศึกษาจากลิ้งด้านล่างได้เลย

https://www.thai-access.com/index.php?topic=117.msg318#msg318
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

46
ลองดูโพสนี้ครับ
https://www.thai-access.com/index.php?topic=331.msg1345#msg1345
โพสต์นี้ได้รับคำขอบคุณจาก: มาลี, 001Jetnipit

47
ผมว่าเงื่อนไขต้องนี้น่าจะมาจากเงื่อนไขตอนแรกมากกว่า
เช่น การกำหนดให้มีการ Dcount มาแสดงใหม่เป็นต้น

ถ้า textbox ใดๆ ที่ผลลัพธ์ มาจากการคำนวน จะใช้ .recalc
ถ้าเป็นคอนโทรลที่มีข้อมูล Bound เช่น  ตารางหรือ Query , ฟอร์มย่อย , วัตถุ OLE เช่น แผนภูมิ , combobox , listbox , ตัวควบคุมที่มีฟังก์ชันการรวม เช่นDSum  ใช้ .Requery ได้


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

48
ห้อง MS Access / : สอบถามโค้ด SQL ครับ
« เมื่อ: 06 ส.ค. 64 , 14:13:40 »
WHERE (((PI.[Position]) NOT LIKE "ผช.ช่าง" And (PI.[Position]) Not Like "สัญญาจ้าง"));

แล้วถ้าเราอยากนับว่าใน Table นี้ Query นี้มี Record อยู่กี่ Row ใส่ลงใน form ต้องเขียน VBA ยังไงหรอครับ หรือว่าลง Query ได้อย่างเดียวครับ

ทำได้หลายแบบ
ถ้าแบบง่ายก็ใช้ การแสดงผลใน textbox
Dim RecCount as long
RecCount = DCount("*", "[ชื่อตารางหรือคิวรี่]")
Me.txtRecCount = RecCount

ถ้าอยากแสดงบน Label ใช้
Me.LabelRecCount.Caption = RecCount
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

49
ห้อง MS Access / : สอบถามโค้ด SQL ครับ
« เมื่อ: 06 ส.ค. 64 , 14:01:25 »
WHERE (((PI.[Position]) NOT LIKE "ผช.ช่าง" And (PI.[Position]) Not Like "สัญญาจ้าง"));

ปกติใช้
WHERE (((PI.[Position]) NOT "ผช.ช่าง" And (PI.[Position]) Not  "สัญญาจ้าง"));

Not Like จะใช้ในกรณ๊ที่ต้องการประโยคบางส่วนของข้อมูลก็เข้าเงื่อนไขโดยใช้ *  เช่น
มีข้อมูล กขค
          กขจ
          ครง
          จกข
WHERE (((PI.[Position]) NOT "*ก"));

ข้อมูล กขค กับ กขจ จะไม่แสดง เป็นต้น
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

50
เปลี่ยนจาก Count เป็น Sum ธรรมดาได้เลยเช่น
ถ้าคุณมีข้อมูลใน Field แยกประเภท ข้อมูล จะมี สัญญาจ้าง และ พนักงานประจำ

เช่น
[แยกประเภท]
สัญญาจ้าง
สัญญาจ้าง
พนักงานประจำ
สัญญาจ้าง
พนักงานประจำ
สัญญาจ้าง

SQL คือ

SELECT Sum(IIf([แยกประเภท]="สัญญาจ้าง",1,0)) AS สัญญาจ้าง, Sum(IIf([แยกประเภท]="พนักงานประจำ",1,0)) AS พนักงานประจำ
FROM [ชื่อตารางหรือคิวรี่];


ข้อมูลจะได้
สัญญาจ้าง lพนักงานประจำ
      4     l       2


กรณีที่ Field แยกประเภท จะระบุเฉพาะคนที่มีสัญญาจ้างเท่านั้น พนักงานประจำไม่ได้ระบุหรือเว้นว่างๆ ไว้แต่อยากให้คำนวนด้วย
เราก็แก้เงื่อนไข True False ให้ False = 1 ก็ได้แล้วครับเช่น

SELECT Sum(IIf([แยกประเภท]="สัญญาจ้าง",1,0)) AS สัญญาจ้าง, Sum(IIf([แยกประเภท]="สัญญาจ้าง",0,1)) AS พนักงานประจำ
FROM [ชื่อตารางหรือคิวรี่];
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

51
เสริมเพิ่มเติม
บางครั้งแปลงไฟล์ เป็น ACCDE หรือ MDE
เพื่อป้องกันการแก้ไขหรือลบโค้ด Module  สามารถใช้งานรันได้ แต่ไม่สามารถเปลี่ยนแปลงได้
เพื่อที่ป้องกันผู้ใช้จากการเข้าถึงฐานข้อมูลแบบเต็มครับ

แต่เมื่อแปลงเป็น เป็น ACCDE หรือ MDE แล้ว ถ้า Admin ผู้พัฒนาจะแก้ไขโค้ดต่างๆ ต้องทำจากตัว ACCDB หรือ MDB เท่านั้นแล้วแปลงใหม่
จะไม่สามารถแก้ไขโค้ดจาก ACCDE ได้เช่นกัน
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

52
สามารถดึงตารางที่มี Field เพศ หรือ Field กรุ๊ปเลือด มานับจำนวนโดยสร้างคิวรี่ใหม่ขึ้นมาแล้ว ใส่ sql แบบนี้

SELECT [เพศ], Count([เพศ]) AS จำนวน FROM [ชื่อตารางหรือคิวรี่]  GROUP BY [เพศ];

และถ้าจะนับจำนวน กรุ๊ปเลือด ทำแบบเดียวกัน

SELECT [กรุ๊ปเลือด], Count([กรุ๊ปเลือด]) AS จำนวน FROM [ชื่อตารางหรือคิวรี่]  GROUP BY [กรุ๊ปเลือด];
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

53
ส่ง รหัส anydesk มาทางข้อความหน่อยครับ
ผมรีโมทไปแก้ให้
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

54
โค้ดผิดครับ
แก้เป็น

Set rsc = Forms!......................Form.RecordsetClone
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

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