แสดงกระทู้

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 ... 28 29 30 [31] 32
541
หัดเขียนครับ ช่วยให้โคชที่จะไม่แสดงค่าจำนวนติดลบให้หน่อยครับ
ทำงานบนฟอร์ม หรือ คิวรี่ ครับ

ที่จริงการไม่แสดงจำนวนติดลบ ง่ายๆ เลยคือการสั่ง Criteria  Not <0
เท่านี้ค่าที่น้อยกว่า 0 คือค่าที่ติดลบจะไม่แสดงครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Joyelephant Doorcloser

542
ผมสมมุติ ID = textbox ชื่อ ID  datatype เป็น Number
           วันที่ลง = textbox ชื่อ วันที่ลง               datatype เป็น DateAndTime

1.สร้าง Sub ขึ้นมาใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
Sub AutoRunnumber()
Dim MaxNum As Integer
MaxNum = Nz(DMax("ID","tb_เลขจอง"))

If MaxNum = 0 Then
MaxNum = 1
Else
MaxNum = MaxNum + 1
End If
Me.ID = MaxNum
End Sub

2.กำหนด Event AfterUpdate ของ textbox  วันที่ลง  ดังนี้
Private Sub วันที่ลง_AfterUpdate()
If Not IsNull(Me.วันที่ลง) Then
Call AutoRunnumber
End If
End Sub

การใช้งาน
เมื่อเราระบุวันที่ ระบบจะสร้างลำดับขึ้นมาให้เราอัตโนมัติ ถึงเราจะลบ Record ทิ้งไป เมื่อเรากด เพิ่ม Record ใหม่ มันก็จะรันต่อจากเลขที่มากสุด มา + 1 เสมอครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

543
ลอง เข้าไปเช็คตรง

Start >> control panel >> Region >> Administrative tab >> change system locale >> มีคำว่า Beta: Use Unicode UTF-8 for world wide language support" ให้ติ๊ก หรือไม่ ถ้ามีให้ติ๊กออกไป  ถ้าไม่มีเดี่ยวหาวิธีใหม่ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: pitakchan

544
ทำไม่ได้ค่ะ
เรา ต้องการให้ขึ้น Record ใหม่ แล้วให้เลขเป็น Autorun แล้วมันไม่ข้ามเลขค่ะ
ปกติถ้าลบ record ทิ้ง เลขที่เป็น Autorun จะรันข้ามไปเรย
Autorun ไม่จำเป็นว่าจะใช้ Datatype แบบ AutoNumber อย่างเดียวครับ ใช้แบบ Number แทนก็ได้เหมือนกัน

โดยเราสามารถใช้การสร้าง การรันตัวเลขไป ตามลำดับได้ โดยใช้ Event ของ ฟอร์มโดยใช้ Function Dmax เพื่อหาค่าสูงสุด นำมา +1 เพื่อให้ได้ลำดับต่อๆไปครับ
ผมจะทำตัวอย่างให้ได้ ลองส่งรูปตัวอย่าง Table รูปตัวอย่างฟอร์มที่ทำอยู่มาดูหน่อยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown

545
ใช่ครับอาจารย์ พอดีไปค้นเจอมาจากเว็บนอกครับเลยเอามาประยุกต์กับเคสนี้  :grin: :grin:
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

546
ตรง Format ได้กำหนด AutoCenter หรือ จัดกึ่งกลางอัตโนมัติ เป็น ใช่ แล้วหรือยังคับ
โพสต์นี้ได้รับคำขอบคุณจาก: Teeyai

547
ห้อง MS Access / : [VBA] การทำ search โดย combobox error
« เมื่อ: 04 ก.ย. 62 , 14:40:08 »
คุณใส่ชื่อ subform ผิด ชื่อ subform ให้เปิดฟอร์มหลักในมุมมองออกแบบ แล้วคลิกเลือก ฟอร์มย่อย ตรงคุณสมบัติ แท๊บ อื่นๆ จะมีชื่อของ subform อยู่ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: PooPae

548
Dirty คือการทำงานใดๆ อยู่ครับ

สมมุติ
If me.dirty then
me.dirty = false
end if

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

549

Private Sub Command477_Click()
me.dirty = false
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
End sub

ลืมใส่ =
ลองดูคับว่าได้ไหม
โพสต์นี้ได้รับคำขอบคุณจาก: PooPae

550
Column นั้นเราอ้างอิงมาจากการกำหนด RowSource ของ Combobox ครับ

RowSouce ชื่อตรงนี้นะครับ


Column มาจากนี้ครับ


ให้สังเกตุว่า คอลัมน์ มี 2 อัน โดยกำหนด ID ไว้เป็นคอลัมน์แรก และ รายการเป็นคอลัมน์ที่สอง
โดย การนับคอลัมน์นั้นจะเริ่มนับจาก 0 ไป 1 , 2 , 3 , 4 , 5 , 6 ไปเรื่อยๆ
เราต้องการให้ textbox แสดง รายการหรือList เราเลยกำหนดให้ textbox = Combobox.Column(1) นั้นเอง
โพสต์นี้ได้รับคำขอบคุณจาก: Wonder B

551
อ้างถึง
1. ผมต้องการทำเลขบอกลำดับด้านหน้า Record บนคล้าย Continuous Form คล้ายๆกับ Running Sum บน Report จะมีวิธีการทำอย่างไร? (ตามภาพ)

ขั้นตอนที่ 1 สร้าง Module เอา โค้ดนี้ใส่เข้าไป
โค๊ด: [Select]
Public Function RowNum(frm As Form) As Variant
On Error GoTo Err_RowNum
   
    With frm.RecordsetClone
        .Bookmark = frm.Bookmark
        RowNum = .AbsolutePosition + 1
    End With
   
Exit_RowNum:
    Exit Function
   
Err_RowNum:
    If Err.Number <> 3021& Then
        Debug.Print "RowNum() error " & Err.Number & " - " & Err.Description
    End If
    RowNum = Null
    Resume Exit_RowNum
End Function
ขั้นตอนที่ 2 สร้าง textbox ชื่อ No ที่ ControlSource ใส่ ว่า =RowNum([Form])


ลำดับก็จะรันอัตโนมัติครับ


อ้างถึง
2. ผมทำช่องให้กรอกช่วงเวลาที่ต้องการค้นหา Record(Search by Date Rage) เอาไว้ครับ(ตามภาพ)
แก้โค้ดเป็นแบบนี้ดูครับ ใช้การกำหนด Sql แทน แก้ชื่อ Form1 เป็นชื่อฟอร์มของคุณด้วยนะครับ
โค๊ด: [Select]
Sub Search()
Dim Sql As String
 If IsNull(Me.txtDateFrom) Or IsNull(Me.txtDateTo) Then
    MsgBox "Please enter the date range", vbInformation, "Date Range Required"
    Me.txtDateFrom.SetFocus
    Sql = "SELECT * FROM qryTransactions ORDER BY qryTransactions.TransactionsDate;"
        Else
    Sql = "SELECT * FROM qryTransactions  WHERE (((qryTransactions.[TransactionsDate]) Between forms!Form1!txtDateFrom And forms!Form1!txtDateTo)) ORDER BY qryTransactions.TransactionsDate;"       
End If
        Me.Form.RecordSource = Sql       
End Sub

อ้างถึง
3. ผมต้องการให้แสดงผลลัพธ์ทั้งหมดที่ค้นหาได้ ตามภาพด้านบน จะมีแนวทางเขียนโค้ดอย่างไร
ผมสมมัติสร้าง textbox ไว้เก็บจำนวน Record ชื่อ txt_TotalRecordSearch
เวลาเราจะเรียกใช้ก็นำไปรวมกับ คำสั้งค้นหาวันที่ แบบนี้คับ

โค๊ด: [Select]
Sub Search()
Dim Sql As String
Dim FormRecCount  As Long
 If IsNull(Me.txtDateFrom) Or IsNull(Me.txtDateTo) Then
    MsgBox "Please enter the date range", vbInformation, "Date Range Required"
    Me.txtDateFrom.SetFocus
    Sql = "SELECT * FROM qryTransactions ORDER BY qryTransactions.TransactionsDate;"
        Else
    Sql = "SELECT * FROM qryTransactions  WHERE (((qryTransactions.[TransactionsDate]) Between forms!Form1!txtDateFrom And forms!Form1!txtDateTo)) ORDER BY qryTransactions.TransactionsDate;"       
End If
        Me.Form.RecordSource = Sql
        Me.txt_TotalRecordSearch.ControlSource = "=Count(No)"
End Sub

ตัวอย่างด้านล่างนะครับ

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

552
โค้ดนี้แต่เดิมอาจารย์ pizza_p แนะนำไว้ในกระทู้นี้ครับ

https://www.thai-access.com/index.php?topic=220.msg784

ถ้ามีตัวอย่าง ไฟล์ที่ออกรายงานแบบนั้่นได้ ผมก็จะสามารถแก้ไขให้ได้คับ
โพสต์นี้ได้รับคำขอบคุณจาก: Teeyai

553
สมมุติว่ามันไม่ยอมเซฟให้เรา ๆ ก็โกงๆมันหน่อยแบบนี้เลยครับ สมมุติ text1 , text2 เป็น default Value

คำสั่งที่ปุ่มเซฟ
Private Sub Save_Click()
If Me.NewRecord Then
Me.Text1 = Me.Text1
Me.Text2 = Me.Text2
DoCmd.RunCommand acCmdSaveRecord
End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: pim

554
อ่อคำนำหน้ากับชื่อติดกันตามนั้นเลยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

555
ห้อง MS Access / : วิธีการ Freeze Page Header ใน report
« เมื่อ: 30 ส.ค. 62 , 10:22:53 »
ลองดูวิธีนี้นะครับ

ให้ดูการกำหนด Format (รูปแบบ) ของรายงานหลัก และ รายงานที่จะทำหัวของรายงาน นะครับ
ส่วนโค้ดก็มีไม่เยอะครับ เป็นการใช้ Move , SelectObject เข้ามาช่วย
โพสต์นี้ได้รับคำขอบคุณจาก: Teeyai

556
ผมสมมุติ Combobox ค้นหาชื่อ Cb_UserAge นะครับ
ใส่โค้ด Event AfterUpdate ดังนี้

Private Sub Cb_UserAge_AfterUpdate()
    Me.Filter = "[Age]=" & Me.Cb_UserAge
    Me.FilterOn = True
End Sub

หมายเหตุ Age คือ ชื่อฟิลล์ที่เราต้องการกรอง ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Wonder B

557
  :cry: :cry:(มือใหม่หัดใช้โปรแกรม) ขั้นตอนการสร้าง Table Design และ Form Design ที่ถูกต้อง คือ ต้องการสร้างฐานข้อมูล ใบ Job Order เพื่อนำมาใช้ในระบบ บริษัท ได้ ทำการสร้าง Form Design แล้ว แต่พอมา กดดูแบบ กดคลิกเมาไปที่ Form ที่บันทึกแล้วที่อยู่แทบข้างซ้ายมือ มันขึ้นแต่ช่องข้อความมาและมีข้องความว่า #Name แต่ข้อมูลที่เราป้อนเข้าไปมันไม่ขึ้น  แต่ถ้าเรากดเข้าไปที่ Design View มันจะขึ้นปกติแบบที่เราออกแบบไว้ ไม่ทราบว่าเราใส่อะไรผิดหรือป่าว

ขึ้น #Name? แบบนี้หรือเปล่าครับ ถ้าใช่
เกิดจากการกำหนด แหล่งระเบียน ไม่ถูกต้อง ในตัว Controlครับ เช่นมีการกำหนด =................ ใน แหล่งระเบียนไม่ถูกต้องเวลารันฟอร์มเลยขึ้น Error #Name?
มีรูปหน้า Desize และ ตอนรัน Forms หรือเปล่า
โพสต์นี้ได้รับคำขอบคุณจาก: Harch Marrow

558
สมมุติผมมีฟิลล์ ID / Close / Field1 / Field2 / Field3
มีตารางชื่อ Table1
ที่ปุ่มสีเขียวผมก็ใส่โค้ดไปว่า

โค๊ด: [Select]
Me.RecordSource = "SELECT Table1.ID, Table1.Close, Table1.Field1, Table1.Field2, Table1.Field3  FROM Table1 WHERE (((Table1.Close)=False));"

พอเรากด ติ๊กที่ Checkbox Close แล้วข้อมูลจะหายไปครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Wonder B

หน้า: 1 ... 28 29 30 [31] 32