แสดงกระทู้

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 ... 23 24 25 [26] 27 28 29 ... 32
451
ก่อนอื่นผมต้องขอขอบคุณมาก ๆ นะครับ ที่เข้ามาช่วยตอบผม

ผมขอสอบถามเพิ่มเติมหน่อยครับ
Dim strWhere As String หรือ Dim strTemp หรือ Dim I As Integer มันคืออะไรหรอครับ ( 2อันหลังนี้ผมเอามาจาก Youtube ครับ )
แล้วถ้าหากว่าผมต้องการศึกษาเรื่องการเขียนโค๊ดพวกนี้เอง ผมต้องใช้ Keyword ใน Youtube ว่าอะไรหรอครับ

จากตัวอย่าง
Dim. คือ คำสั่ง ( statements) สำหรับประกาศตัวแปร ครับ
strWhere  คือ  ชื่อของตัวแปรที่ต้องการประกาศ
ส่วน As .... date  , Integer , string , อื่นๆๆ เป็นส่วนที่บอกให้ Visual Basic ทราบว่าต้องการกำหนดชนิดของข้อมูลเป็นแบบไหน.
date วันที่
integer ตัวเลข จำนวนเต็ม
String ข้ออมูลชนิดchar หลายๆตัวนํามาเชื่อมต่อกันเป็นstring
ยังมีชนิดข้อมูลอื่นๆอีกครับ

ส่วนการศึกษาเรื่องพวกนี้ เราควรจะมีการตั้งโจทย์ไว้ก่อนว่าเราต้องการอะไร อยากให้แสดงผลอะไรก่อนเหมือนที่คุณกำลังคิดว่าเราจะพิมพ์หน้าผ่าน Filter Form ต้องทำอย่างไร เมื่อได้โจทย์แล้ว เราก็ไปหาตามโจทย์นั้นเลย แต่มือใหม่ยังไม่เข้าใจเกี่ยวกับ Syntax เลย ก็สอบถามผมได้ครับผมยินดีให้คำปรึกษา

452
ที่ CommandBotton Event On Click
โค๊ด: [Select]
Private Sub Command15_Click()
  Dim strWhere As String
    If Me.Dirty Then
        Me.Dirty = False
    End If
    If Me.NewRecord Then
        MsgBox "Select a record to print"
    Else
        strWhere = Me.Form.Filter
        DoCmd.OpenReport "Report1", acViewPreview, , strWhere
    End If
    End Sub
หมายเหตุ Report1 คือชื่อ ของรายงานที่จะแสดง
ถ้าไม่ต้องการดูตัวอย่าง อยากให้กดปุ่มแล้ว print เลยให้แก้เป็น
DoCmd.OpenReport "Report1", acViewNormal, , strWhere

ถ้าอยากให้สะดวกในการ ล้าง Filter เพื่อกำหนดใหม่อาจจะสร้าง ปุ่มขึ้นมาอีก 1 อันใส่คำสั่งไปว่า

Me.Form.FilterOn = False

เท่านี้ค่าที่ Filter ไว้ก็จะหายไปแล้วครับ

453
ห้อง MS Access / > Error "The database engine could not lock table"
« เมื่อ: 08 พ.ค. 61 , 17:38:58 »
ตอนรัน Queryขึ้นแจ้งเตือนดังรูปด้านล่าง ซึ่งไม่ได้เปิด Tableดังกล่าว หรือTableใด รวมถึงไม่มีการเปิดฟอร์ม Reportใดๆไว้เลยค่ะ
ในแต่ตอนรันครั้งแรก ระบบเอาข้อมูลจากตารางMonthly_FG ไปใช้ต่ออีกหลายQuery
คิดว่าน่าจะมีProcess ค้างอยู่ แต่ไม่รู้ตรงไหน
เวลาจะรันครั้งที่สอง จึงต้องปิดและเปิดโปรแกรมใหม่ถึงจะสามารถรันได้ปกติ

อยากทราบว่ามีวิธีไหนที่จะเขียนโค้ดดักก่อนว่า ให้เคลียร์หรือปิดProcessทั้งหมดก่อน หรือปิดและเปิดโปรแกรมใหม่ไหมคะ
เพื่อจะได้ไม่มีErrorแบบนี้เกิดขึ้น



พอเออเร่อ สั่ง Compact and Repair  หรือ ซ่อมแซมฐานข้อมูล อาการนี้หายไหมครับ

454
ผมต้องการสร้าง ตารางใหม่โดยใช้ Query แต่ให้มีการ Running number

ในฟิลด์ผมใส่ AutoNumber: (SELECT Count(*) From PricePP as a Where a.SizePP <= a.SizePP)
กดรันแล้ว ไม่สามารถรันได้
ขอคำแนะนำหน่อยครับ

ที่ตารางใหม่มีข้อมูลอะไรอยู่ก่อนแล้วบ้างครับ ที่จะนำไป Make Table หรือต้องการสร้างตารางใหม่ โดยให้มีการ Running Number 1 2 3 ไปถึงจำนวนที่กำหนดคับ


455
งงครับ ผมลองเอาไปเปิดที่เครื่องอื่นก็ error เหมือนกัน excel 2010 ครับ
สงสัยต้อง Teamview ไปดูนะครับ แบบนี้ ส่งรหัส ทีมวิวทางข้อความได้เลยนะครับ

456
ผมใช้ SELECT Final2.*, SumHR2.* คือเอาทุกฟิลล์มาแสดง แล้วไปกำหนด is not null แต่ละฟิลล์อีกที
ส่งไฟล์ตัวอย่างให้ทางเมลแล้วนะครับ
ทดลอง Export แล้ว ไม่มีติด Error ใดๆนะครับ

457
ผมใช้ SELECT Final2.*, SumHR2.* คือเอาทุกฟิลล์มาแสดง แล้วไปกำหนด is not null แต่ละฟิลล์อีกที

458

ตัวอย่างนี้ใช้วิธีการ Running Sum นะครับ
ตัวอย่างคำสั่ง SQL
โค๊ด: [Select]
SELECT Table1.Name, Format([Date],"mmmm yyyy") AS OnDate, Table1.SumofDebit, Table1.SumofCradit, (SELECT Sum(a2.SumofDebit) FROM Table1 AS a2
                WHERE
                a2.Name = Table1.Name
            AND a2.Date <= Table1.Date
    ) AS รวมสะสมเดบิต, (SELECT Sum(a3.SumofCradit) FROM Table1 AS a3
                WHERE
                a3.Name = Table1.Name
            AND a3.Date <= Table1.Date
    ) AS รวมสะสมเครดิต, Table1.Date AS จัดลำดับเดือน
FROM Table1
ORDER BY Table1.Date;

ลองดูนะครับว่าตรงแบบที่ต้องการหรือเปล่า
ตัวอย่างด้านล่าง


459
กำหนดว่า ถ้า อันใดอันหนึ่ง is not null ก็ให้แสดง ODNo ครับ แบบนี้


SQL ก็แบบนี้
โค๊ด: [Select]
SELECT Final2.*, SumHR2.*
FROM Final2, SumHR2
WHERE CostQIns IS NOT NULL
 OR  CostQCut IS NOT NULL
 OR  CostQIron IS NOT NULL
 OR  CostQPack IS NOT NULL
 OR  CostQQc IS NOT NULL
 OR  CostQSaw IS NOT NULL;

หรือ อีกแบบ
โค๊ด: [Select]
SELECT Final2.*, SumHR2.*
FROM Final2, SumHR2
WHERE CostQIns or CostQCut or CostQIron or  CostQPack or CostQQc or CostQSaw IS NOT NULL;

460
สั่ง Group By ที่ Final รีฟอทครับ

461
รู้สึกว่ายอดรวมจะเพี้ยนเดี่ยวแก้ใหม่ก่อน
คุณ Prajak ใช้อันนี้นะครับ
เพราะ ถ้าเรา Join เข้าด้วยกันยอดจะเพี้ยนครับ เลยต้องแก้นิดนึง อันนี้ได้แล้วครับไม่ผิดละ
ตอนแรกทำเหมือนเดิมแบบนี้


แล้ว มา sum อีกทีนึงเพราะจาก Query แรก ถ้าเราเลือกหลายวัน ค่าที่จะนำไปใส่ ต้องเอามารวมอีกทีนึง


หลังจากนั้นก็นำไป สร้างรายงาน โดยเอาคิวรี่ทั้งสองตัวไปวางเลย


แบบนี้ครับ

462
พอเข้าใจครับ ตัวอย่างด้านบนนะครับ

463
ใช้อันล่าง

464
ไม่ต้อง Join Table ไม่ต้อง อ้างอิงฟอร์ม ให้กำหนด
Criteria ของ Type2 เป็น
Not In (select [Type] from [Not_FG])

465
แก้เพิ่มเติมแล้วค่ะ แต่ลองแล้วต้องใส่Not In (...)ตามรูป ข้อมูลได้มาถูกต้อง


แต่ตอน Make table ตรวจดูแล้วข้อมูลฟิลด์TotalAmountเป็น Number
TOTAL (m2) เป็นTEXTค่ะ

**ตอนนี้เปลี่ยนข้อมูลเป็น Number หมดแล้วค่ะ แต่ยังไม่แสดงข้อมูลเหมือนเดิม
ที่ Type2 ไม่จำเป็นต้องกำหนด Not หรือ Not in แล้วครับ
เพราะไปกำหนด ที่ Type เป็น Is null แล้ว แค่นี้ก็จะได้ข้อมูล Type2 ที่ต้องการแล้วครับ
เพราะการ Join แบบนั้น และให้ค่า isnull แล้ว เป็นการ ตัดรายการของทาง Type2 ออกไป ตามที่ Type มีอยู่

แบบนี้ก็พอ


466
ห้อง MS Access / > > Update field in table
« เมื่อ: 02 พ.ค. 61 , 21:36:22 »
ลองคำสั่งทั้งสองแบบ ผลลัพธ์ที่ได้มีค่าเหมือนกันเลยค่ะ
แตกต่างกันยังไงหรอคะ

DoCmd.SetWarnings (0)
...คำสั่งที่ใช้
DoCmd.SetWarnings (1)

และ

DoCmd.SetWarnings (0)
...คำสั่งที่ใช้
DoCmd.SetWarnings (-1)

โดยปกติแล้ว Boolean values = (True; False; Yes; No)
เป็นการแสดงค่าสองค่าโดยปกติครับแต่ Access (VBA) ได้เก็บค่าแบบ numeric variables.

ค่าที่กำหนดใช้แสดงค่า True and False หรือ -1 and 0 หรือ ค่าอื่นๆ ที่ต้้งค่าเพื่อให้ตรงข้ามกับอีกค่าหนึ่ง
ที่จริงแล้วสามารถเก็บค่าได้มากกว่า 2 ค่า นี้ครับ เช่น 0 คือ false แล้ว ค่าตัวเลขอื่นๆที่ไม่ใช่ 0 ที่ใส่ไปก็จะเท่า true หมดครับ

467
แก้เป็น

[Forms]![ชื่อฟอร์มหลัก]![frmtbl_Purdet].[Form]![Part_desc].Requery


ตัวอย่างด้านล่าง

468
ขอบคุณมากค่ะ

ลองทำดูแล้วพยายามแก้ code แต่มันขึ้น error  ตอนที่คำสั่งให้ Combo Box ทำ requery เนื่องจาก combo box อยู่ใน subform ชื่อ frmtbl_purdet จะต้องเขียนคำสั่งยังไงคะ




ตอนนี้เขียน code ตอนปิดฟอร์มที่บันทึกรายการอะไหล่ แล้วสั่งไป requery คอมโบ้บอกซ์ซี่งอยู่ใน subform ชื่อ frmtbl_purdet แล้วมันขี้น error ตลอด

 Private Sub Form_Close()
   Forms.frmtbl_Purdet.Part_desc.Requery
End Sub

รบกวนสอบถามอีกครั้งค่ะ

ถ้าพี่จะทำแค่เพิ่มรายการแล้วให้ requery ที่ Control ตัวนี้ให้แสดงรายการล่าสุดนั้น เพิ่ม ที่ ตัว Control ตัวนั้นเลยก็ได้ครับ
ที่ frmtbl_purdet ใส่คำสั่ง ที่ Control Part_desc ใน event GotFocus
โค๊ด: [Select]
Private Sub Part_desc_GotFocus()
me.Part_desc.requery
End Sub

หน้า: 1 ... 23 24 25 [26] 27 28 29 ... 32