แสดงกระทู้

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 - ชวลิต เสนะสุทธิ

หน้า: [1] 2
1
ลองปรับโค๊ดเป็นแบบนี้แล้วทดสอบดูนะครับ

โค๊ด: [Select]
Dim strNum, strBarCode As String
Dim I, amount   As Long
Dim db As Database
Dim rs As Recordset
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("table1", DB_OPEN_DYNASET)
    For I = Me.txtBeginNumber To Me.txtEndNumber
     strNum = Right("0000" & I, 4)
     strBarCode = Trim(Me.txtModel) & Trim(Me.Text15) & Trim(strNum) & "R2"
    If DCount("Barcode", "table1", "[Barcode] ='" & strBarCode & "'") > 0 Then
        MsgBox "มีการลงทะเบียน Barcode นี้แล้ว", vbInformation, "Status"
        Exit Sub
    End If
    If Nz(amount, 0) = 0 Then
    amount = DCount("Barcode", "table1", "[Barcode] ='" & strBarCode & "'")
    Else
    amount = amount + DCount("Barcode", "table1", "[Barcode] ='" & strBarCode & "'")
    End If
 Next I

  'เช็คเงื่อนไขการซ้ำให้เสร็จ แล้วตามด้วย ถ้าไม่มีข้อมูลซ้ำ amount = 0 ก็ทำการบันทึก
 If amount = 0 Then
    For I = Me.txtBeginNumber To Me.txtEndNumber
    strNum = Right("0000" & I, 4)

     rs.AddNew
        rs![Barcode] = Trim(Me.txtModel) & Trim(Me.Text15) & Trim(strNum) & "R2"
       
     rs.Update
     Next
     MsgBox "บันทึกสำเร็จ", vbInformation, "การบันทึก"
rs.Close
db.Close
Set rs = Nothing: Set db = Nothing
End If
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

2
โจทย์ข้อ 1 กับ 2

ปล.ลองแก้ระบบตามที่อาจารย์ OddyWriter แนะนำด้วยนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

3
แนะนำว่าควรรวมตาราง Product ไว้เป็นตารางเดียวกันนะครับ การแบ่งตารางตาม Product จะมีข้อจำกัดมากมาย เช่นถ้าอนาคตมี Product ใหม่ ก็ต้องสร้างตารางข้อมูลใหม่อีก ซึ่งไม่ใช่เรื่องสนุกเลยนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

4
สอบถามเพิ่ม
1.เลือก dropdown คือต้องการ เลือกชื่อคิวรี่ที่จะเอามาแสดงผลใช่ไหมครับ
2.เลือก Picking นี้เลือกด้วยทุกครั้งไหมครับ หรือ เลือกบางครั้ง

โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

5
1. ต้อง Convert ตารางเป็น Local File ก่อนส่งมานะครับ เพราะตอนนี้มันเช่อมต่อแบบ ODBC อยู่ ทำให้ไม่สามารถเปิดดูข้อมูลอะไรได้
2. ส่งมาเฉพาะตารางกับฟอร์มที่ต้องการให้ช่วยดูก็พอ ส่งมาทั้งหมดแบบนี้ ดูให้ไม่ไหว
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

6
ขอดูโค้ดที่วางในคิวรี่หน่อยคับ
ของคงเหลือนะครับ
หรือ copy code SQL มาดูเลยก็ได้คับ
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

7
ตัวอย่าง ติดต่อกับ Customer Diskplay

    Dim printString As String

    Open "com1:2400, N, 8, 1" For Output As #1
    Rem clear
    Print #1, Chr(12)
           
    Close #1
   
 Open "com1:2400, N, 8, 1" For Output As #1
   
    Print #1, Format([XTotal], "#####.00")
   
 Close #1
 

โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

8
อาจต้องกำหนด Config ให้ Port RS232
เพราะเป็นไปได้ว่าทางผู้ผลิตได้กำหนด Pin Number ไม่เหมือนคนอื่น

แนะนำว่าต้องติดต่อผู้ผลิต แล้วขอคำแนะนำจากเค้าครับ

โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

9
โปรแกรม พิมพ์ Slip เงินเดือน
เพื่อศึกาษารออกแบบฐานข้อมูลเบื้องต้น
การเพิ่มข้อมูล , ค้นหา, พิมพ์


โหลดได้ที่
http://access.crtrading.net/filedownload/salaryDatabase.rar











โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

10
ได้ครับ แต่อาจต้องหา Driver ของ COM1 มาลงหน่อย
ถ้าจะให้ชัวร์ ลองกับ Excel ดูก่อนก็ได้ครับ ถ้าสแกนแล้ว Excel รับค่า ก็สามารถใช้ได้กับ Access แน่นอน
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

11
2013 ผมหา Compile / DeCompile ไม่เจอครับ
compact and repair ทำแล้วแต่ก็ยังไม่ได้


โหลดไฟล์ Database39.mdb ของท่านมาใช้ได้ :sweat:
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

12
ลอง Compile / DeCompile ดูหรือยังครับ
ลอง compact and repair ด้วยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

13
ไม่ว่าจะใช้แบบไหนผมก็รันไม่ได้เกิดจากอะไรครับนี่


โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

14
ถ้าเลือก DAO 3.6 ก็เอา
Microsoft Office xx.0 Access Database engine object library ออกไปครับ

อธิบาย
ถ้าไฟล์ที่นามสกุล .accdb จะมี  Microsoft Office xx.0 Access Database engine object library มาให้แล้ว
มันใช้ได้เหมือน DAO

ถ้าจะใช้ DAO 3.6 ก็ต้องติ๊กเอา Microsoft Office XX.0 Access Database engine object library ออกไป

ถ้าใช้ Microsoft Office XX.0 Access Database engine object library ก็กำหนด แนะนำตัวนี้แหละดีแล้วสำหรับรุ่นใหม่ๆ
Microsoft Office  2007 ขึ้นไปใช้
Dim rst as Recordset

ถ้าใช้ DAO 3.6 ใช้กับเวอร์ชั่นเก่าๆ ดี ถ้าเวอร์ชั่นใหม่ๆ ใช้ตัวบน
Dim rst as DAO.Recordset
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

15
ถ้าอยากใช้ DAO ก็เพิ่ม reference ตัวนี้เข้าไป


เครื่องผมเพิ่มไม่ได้ขึ้น Name conflicts with existing module, project, or object library แก้ยังไงครับ :question:
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

16
ลองแก้เป็น
dim rst as recordset

เอา DAO ออกไปครับ
ถ้าอยากใช้ DAO ก็เพิ่ม reference ตัวนี้เข้าไป
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

17
ลองดูโค๊ดนี้ว่าได้ไหม ช่วยๆกันสาย DIY

โค๊ด: [Select]
Private Sub QRCode_AfterUpdate()
Dim strLetterName As String
Dim intNum As Integer
Dim i As Long
Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("table1", dbOpenDynaset)

strLetterName = Left(QRCode, 6)
intNum = Right(QRCode, 3)

For i = 1 To Me.Text0

rst.AddNew
rst!Bcode = strLetterName & intNum
rst.Update
intNum = intNum + 100
Next
rst.Close
Set rst = Nothing
Me.Recalc
End Sub

แต่ความต้องการคือให้ + 100 ไปเรื่อยๆหรือไม่เช่น
ถ้า 6 ครั้ง ก็จะได้ AAABBB100 - AAABBB600
แต่ถ้า 15 ครั้ง Bcode จะเป็น AAABBB100 - AAABBB1500

หรือจะปรับแก้ยังไงก็บอกนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

18
AAABBB100 เป็นตัวอักษรไม่ใช้ตัวเลขดังนั้นการที่จะบวกได้ก็ต้องใช้ Left,Right แยกออกมาก่อนบวกแล้วรวมกลับเข้าไปจากนั้นถึงจะนำเข้าไปใส่ใน Database นะครับ
>จำนวนตัวอักษรต้องเท่ากันทุกครั้งในการใช้ Left,Right แยกออกมา
>เมื่อ 900+100 = 1000 แต่เมื่อวนกลับไปใช้ Left,Right จะได้ 000(ดึง3ตัวท้าย)
>ตัวอย่างชื่อเทเบิ้ล Table1 ,ชื่อฟิวล์ BCode

โค๊ด: [Select]
Private Sub QRCode_AfterUpdate()
Dim i As Integer
Dim X As Variant
Dim Y As Variant
Y = Me.QRCode
DoCmd.SetWarnings (0)
For i = N + 1 To Me.Text0 'ตั้งออโต้จำนวนใว้ที่ 6
    SQL = "insert into Table1 ([BCode]) values('" & Y & "');"
    DoCmd.RunSQL SQL
    X = Right(Y, 3) + 100
    Y = Left(Me.QRCode, 6) & X
Next
DoCmd.SetWarnings (1)
Me.Recalc
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

หน้า: [1] 2