แสดงกระทู้

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

หน้า: [1] 2 3
1
ทำได้แล้วครับผม ขอขอบคุณมากครับ

1.ใช้วิธี Query 11,12 มาก่อน ได้ค่า OEE ที่ต้องการแต่ละวัน
2.เอา Query 11,12 มา UNION กันให้อยู่ในตารางเดียวกัน
3.แล้วสร้าง Taxt ที่ form continuous
4.Taxt=DLookUp("OEE","QRUNIC","ITEM ='" & [ITEM] & "'")

อ้อมหน่อยแต่ได้ตามที่ต้องการครับ
ขอบคุณครับ

2
ขอบคุณ nonc31 มากครับ
คือจากข้อมุลที่ผมมี คือผมต้องการ Stampหรือเก็บ ค่าทีเครื่องจักรส่งมา ที่สถานะ 2 เป็น 5 ครับ
คือให้เก็บค่า OEE ที่สถานะเปลี่ยนเป็น 5 ไว้ของทุกวันครับ แต่ดูแล้วมันยากครับเลยเข้าไปดูว่า
เครื่องมันมีข้อมูลอะไรบ้างได้พบดังนี้ครับ



จากรูปจะมีข้อมุลแต่ละเครื่องจักร คือตาราง 11,12
และมีตาราง Monitor ที่เครื่องส่งมาแสดงผลของแต่ละเครื่องโดยแสดงค่าสุดท้ายของแต่ละเครื่องครับ
แต่ทีนี้พอเครื่องทำงานเสร็จแล้วก็จะส่งค่า และคำนวณมาเรื่อยๆครับ ทำให้ OEEลดลง ไม่ใช่ค่าสุดท้ายที่ทำได้ครับ

ความต้องการของผมคือ ที่อยากได้ OEE ตัวสุดท้ายจริงๆ ที่เปลี่ยนสถานะจาก Run เป็น Completed ครับ
โดยที่เป็นวันที่เดียวกันกับตาราง Monitor ที่แสดงครับ
ผมเลย Query ข้อมูลขึ้นมา และอยากจะ Select ค่าดังกล่าวแทนครับ
ขอรบกวนวิธี Select ข้อมูลด้วยครับ

ขอขอบคุณอีกครั้งครับ ขอบคุณครับ

3
เรียนอาจารย์และท่านสมาชิก
    ผมขอสอบถามการจับข้อมูลตามเงื่อนไขครับ มีรายละเอียดดังนี้ครับ
               
        ผมมีตารางชื่อ Monitor มีพิวส์ STATS จะมีค่าสถานะคือ 1,2,3,4,5
        มีค่า OEE เป็น%ของงานที่ทำได้
        มีพิวส์ DateUse เก้บวันที่ของแต่ละวันครับ
        มีพิวส์ STAMP_OEE ไว้เก็บค่า OEE อีกที
       
        ซึ่ง STAMP_OEE จะเก็บก็ต่อเมื่อเปลี่ยนสถานะ[STATS]จาก2 เป็น5
        ถือสถานะ 2 เป็น 5 นี้จะมีแค่ครั้งเดียวในวันนั้นๆ ครับ พอเป็น 5 แล้วจะ Update เป็น 5 มาทุกๆ 10 นาทีครับ
        ก็คืออยากเก็บค่า OEE จากสถานะ[STATS] = 2 มาเป็น 5 ตัวแรกครับ
        อ่อที่สำคัญ DATA มีแค่ Record เดียว ซึ่งเครื่องจักรจะส่งมา Update การทำงานทุกๆ 10 นาทีครับ
        ผมจะจับค่านี้ยังไงครับ
คือที่ผมทดลองคือ ทำแบบ After UpDate Event Trigger แต่พอหลังจาก Update มันก็เป็นค่า 5 มาอีก
มันเลยไม่ใช่ค่า OEE ที่ต้องการครับ อยากได้แค่ค่าแรกที่ [STATS] = 5 เท่านั้นครับ

        ผมรบกวนแนะนำการเขียน หรือ Code การดึงข้อมูลหน่อยครับ และผมส่งตัวอย่างโปรแกรมมาด้วยครับ
ขอขอบมากครับ


       

4
เรียนอาจารย์และท่านสมาชิก

      ผมขอสอบถามแนวคิดและการอัพเดทข้อมูลเข้าตารางอัตโนมัติเมื่อ ข้อมูลในแถวเข้าเงื่อนไขครับ
คือ ผมทำ Link ตารางจากโปรแกรมอื่นมาไว้ที่โปรแกรมชื่อ TB1 แล้ว Query ข้อมูลนั้นเพื่อมาใช้งานชื่อ QR1
มีพิวส์ IP, Status, DATESTD, TARGET ,  PLAN, ACTUAL มีทั้งหมดแค่ 3 รายการครับ คือ IP = "1","2","3"

ผมสร้างตาราง TBtemp ขึ้นมาที่มีพิวส์เหมือนกันเพื่อเก็บค่าตาม QR1
โดยมีเงือนไขว่าเมื่อไดที่รายการไดที่ Status  =  "Completed" และ DATESTD = วันที่ปัจจุบัน
ให้ทำการ Update ไปที่ตาราง TBtemp ที่ IP เดียวกัน คือ "1","2","3"

ผมจะทำแบบไหนครับ
ที่ผมคิดได้และลองทำคือ
1.ผมนำข้อมูลที่ทำ Link มาคือ QR1 มาทำการพอร์ม Continuous Forms
2.ที่ Text Status ใน Event On Dirty ผมจะเขียน SQL Update ที่ตาราง TBtemp หากเข้าเงื่อนไขว่า Status  =  "Completed" และ DATESTD = วันที่ปัจจุบัน
3.ประเด็นคือ "Completed" มันจะมาหลายค่า แต่ผมอยากให้เอาแต่ค่าแรกที่เจอไปเก็บไว้ที่ TBtemp ครับ
4.Code ที่คำไว้ครับ
Private Sub STATUS_Dirty(Cancel As Integer)
Dim dbs As Database
Dim SQL As String
Set dbs = CurrentDb
dbs.Execute "UPDATE TBtemp SET TBtemp.Status, TBtemp.DATESTD, TBtemp.TARGET ,  TBtemp.PLAN, TBtemp.ACTUAL =QR.Status, QR.DATESTD, QR.TARGET ,  QR.PLAN, QR.ACTUAL WHERE (((QR.Status)="Completed") AND (QR.DATESTD)="Today"));"
dbs.Close
End Sub

ขอคำแนะนำด้วยครับ
ขอบคุณครับ

5
ขอบคุณ nonc31

กำลังต้องการวิธีทำ และตัวอย่างพอดีครับ

 :love:
ขอบคุณครับ

6
ขอบคุณคุณ chai มากครับ
ผมลองทดสอบ แล้วใช้งานได้ครับ
แต่แปลกมากครับว่าทำไม Set เลยทำไมมันไม่ทำงาน
ทีแรกก็เข้าใจว่าเป็นที่ Form Popup มันเลยเป็นอาการแบบนี้
แต่แปลกตรงพอคลิ๊กที่ Form ก็ยัง Focus อยู่
แสดงว่า การให้มันทำงานที่เดิมซ้ำๆ ทำให้ตัว Text มันเองก็ไม่สามารถทำตามคำสั่งทัน(เข้าใจเองครับ)
ต้องให้มันไป Active ที่อื่นก่อนค่อยมาทำที่ตัวมันใหม้ เป็นทริคที่ใกล้ แต่มองไม่ออกจริงๆครับ

ขอบคุณครับ

7
ห้อง MS Access / สอบถามเรื่อง Set Focus ครับ
« เมื่อ: 07 พ.ย. 65 , 14:20:31 »
เรียนอาจารย์ทุกท่าน
    สอบถามการ Setfocus ที่ Text เดิม คือ Tx08 ครับได้ลองดูตัวอย่างหลายตัวในนี้
ก็ไม่สามารถ สั่งได้ครับ ขอรบกวนอาจารย์ครับ

*********************************************
ผมมี Form หลักอยู่ชื่อ Frm_QC
Form ย่อยคือ Frm_tbTemp
ที่ Form หลักจะ Scan QRCode แล้วแยกข้อมูลเพื่อตรวจสอบ
เมื่อตรงตามเงื่อนไขหมดแล้ว จะทำการบันทึกเข้า Form ย่อยหรือตารางFrm_tbTemp
แล้วให้กลับมา Set Focus  ที Tx08 เพื่อรอตัวต่อไป
ครบแล้วค่อย SAVE
แต่ติดที่การจะ Set Focus ครับลองหลายวิธีไม่ได้เลยครับ
ผมส่งตัวอย่างโปรแกรมมาด้วยครับ ขอรบกวนด้วยครับ

ตอนแรกก็คิดว่าติดเรื่อง Popupเหมือนตัวอย่างอาจารย์ TTT
ลองเอามาทำตามก็ไม่ได้ครับ
https://www.thai-access.com/yeadram_view.php?topic_id=4126


ขอบคุณครับ



8
ขอขอบคุณทั้ง 2 ท่านมากครับ
ท่าน UnKnown และ ท่านnonc31 ครับ

พอจะคิดออกตามคำแนะนำท่าน UnKnown ครับ
คือ หากเจอ 0 ที่แถวไหน แล้วให้ทำการนับกลุ่มเริ่มจาก 0 ถึงตัวสุดท้าย
แล้วค่อยมาหาค่าครับ ตามคำแนะนำครับ
ได้ผลยังไงจะมาแจ้งให้ทราบอีกครั้งครับผม

ท่านnonc31 ครับตรงวันที่ปกติเป็น Now() ครับมันเกิดจากเครื่องจับเวลางานออกครับ
ผมนำมากรองข้อมูลเลยเอาแต่วันที่มา แต่ผมยังนึกไม่ออกว่าจะรวมกันยังไงครับ

เบื้องต้นขอทำตามคำแนะนำท่าน UnKnown ก่อนครับ
หากพอจะอะธิบายต่่อได้ก็ ขอรบกวนด้วยครับ


ขอบคุณครับ

9
หาวิธีไม่ได้จริงๆครับ
อาจารย์ท่านท่านไหน พอมีแนววิธีไหมครับ รบกวนแนะนำหน่อยครับ

ขอบคุณมากครับ

10
ขอบคุณ คุณnonc31มากครับ
ทดลองตามแล้วใช้งานได้ครับ

11
ผมติดปัญหา popup เหมือนกระทู้นี้ครับ
https://www.thai-access.com/yeadram_view.php?topic_id=4126
พอเอามาลองใช้ตามอาจารย์ TTT แนะนำ

 Error



เข้าใจว่าต้องประกาศ เป็นแบบ 64 Bit คือที่เครื่องใช้ WIn10 64 bit + Office 2016
จะขอรบกวนการประกาศตัวแปลเป็น 64 ิBit หน่อยครับ
รบกวนด้วยครับ ขอบคุณครับ

12
ขอบคุณครับ nonc31 ครับ
เดี๋ยวผมเอา Code ไปทดลองดูครับ
เพราะว่าพึ่งเปลี่ยนการเขียนตามที่แจ้งไปครับ แต่ก็น่าสนใจเรื่อง
ตัว Code ที่ให้มาครับ เพราะหากเขียนบน Form ก็จะต้อง
เขียน Code ที่ Form เพื่อให้โปรแกรมทำงานอีก
แต่หากบังคับโปรแกรมที่ปิดโดยตรงเลยน่าจะประหยัดเวลากว่าครับ
โดยไม่ต้องเขียนเปิดที่ Form สั่ง  เปิดสั่งปิดตรงๆเลย ดีครับ
ขอบคุณทั้ง 2 ท่านครับ UnKnown และ nonc31

13
กราบสวัสดีอาจารย์ครับ
สอบถามการหาค่าหลายๆช่วงของตารางมารวมกันครับ


จากรูปผมต้องการหาค่าไปแสดงที่ TextBox ครับ
คือผมได้ Query ข้อมูลตาม ComboBox บน Form
ที่่ FrmA มี CB01 เลือกวันที่จากตารง TB1 พิว DATEDATA
              CB02 เลือกวันที่จากตารง TB1 พิว NAME
คือพยายามกรองข้อมูลให้มากที่สุดครับ แล้ว
ทีนี้ผมอยากหาค่า MCDOWNTIME ค่ามากที่สุดของแต่ละครั้งมารวมกันครับ
ซึ่งบางทีก็มี 2 แถว บางที่ก็มี 3 แถว 10 แถว
และแถวแรกที่เริ่มต้นมีค่าเท่ากับ 0 เสมอครับ จะDownTimeต่อเนื่องตามภาพครับ
แล้วจะเข้าสถานะปกติค่าก็จะว่างครับ
จะมีวิธีดึงข้อมูลยังไงครับ

ค่าที่ต้องการคือ ผลรวมของDownTimeค่าสุดท้ายทุกช่วง
ที่DATEDATA=CB01 และ NAME=CB02 และพิวDOWNTIMECODE=11 ด้วย
ซึ่งจากในรูปผมรวมจะได้ 290+150+400 = 840
คือผมคิดได้ว่า ต้องหา Dmax แต่ละช่วงมาบวกกัน
แต่เหมือนมันต้องเขียนให้มันวน บวกกันไปจนหมดแถวทุกช่วง
แต่จะมีวิธีเขียนยังไงครับ
ขอความกรุณาด้วยครับ ขอบคุณครับ

14
เข้าใจมากขึ้น และนำไปปรับใช้ได้หลาย อย่างเลยครับ
ขอบคุณมากครับผม

15
ขอบคุณ คุณOddyWriter ครับ
ตรงเงื่อนไขครับ อยากถามต่อเพื่อความรู้ครับ
DMax("[ACTUAL]","[QR_Test2]","[WO] = 'WO' AND [S1] = 'S1'")
อย่างตัว " "    หรือ ' มันใช้ยังไงครับ คือมีรูปแบบยังไงครับ เช่น
1.หากเป็นวันที่ ใช้ยังไงครับ
2.หากเป็น Text ใช้ยังไงครับ
3.หากเป็นตัวเลข ใช้ยังไงครับ

และตัว [WO],'WO'

คือผมเข้าใจว่า
[WO] = Field ที่อยู่ใน Query ที่เราทำงานอยู่
'WO' = Field ของตารางที่เปรียบเทียบหรือที่เราหา
AND = ใช้เชื่อมเงื่อนไขที่ 2

คือถ้าใช้กับ Dcount, Dlookup, Select ,Insert ,Update
ใช้แบบนี้เป็นรูปแบบตายตัวใช่ใหมครับ คือถ้ามีเกร็ดความรู้อื่นช่วยสงเคาะห์ด้วยครับ
ขอบคุณอีกครั้งครับ

16
เรียนอาจารย์
ขอสอบถาม Code หาค่าใน Query ครับ
คือ หาค่า ACTUAL ที่มากที่สุด
ที่ตาราง QR_Test2
ที่ Field WO(ค่าTextครับ) = WO และ
ที่ Field S1(ค่าวันที่ครับ) = S1 จะเขียนยังไงครับ ลองผิดลองถูกไม่ได้ซักทีครับ
คืออีกอย่าง ถ้าวันที่ S1 มี Format วันที่ไม่เหมือนกันคือตารางที่เทียบมันมีเวลามาด้วยครับ
หาก Format ไม่เหมือนกันผมจะเทียบแค่วันที่ไม่เอาเวลาจะเขียนยังไงครับ

คือตอนนี้เอามาทำ Query ก่อน แล้วกำหนด Format ให้เหมือนกัน แล้วค่อยเทียบครับ
แต่ก็ยังไปเทียบไม่ได้นะครับ ติดตรงสูตรเงื่อนไขนี่แหละครับ
อันนี้ที่ลองเขียนครับ
S2: DMax("ACTUAL","QR_Test2","WO = " & [WO] & " and S1 = " & [S1])
คือไม่ค่อยเป็น SQL ครับ ปกติก็ Coppy มาดัดแปลงเอาครับ รบกวนด้วยครับ
ขอบคุณครับ

17
เรียนอาจารย์
ผมได้ดัดแปลงวิธีใหม่ แล้วครับ
โดยทำ Point ให้เป็น VDO
แล้วให้ VDO เล่นที่ Form แล้ว
สั่งให้ปิด Form ครับมันง่ายกว่าเยอะเลยครับ

ได้แล้วครับ
ขอบคุณที่เข้ามาดูคำถามครับ

18
เรียนอาจารย์และสมาชิกทุกท่านครับ
     
     ผมอยากได้ Code ที่สั่งปิดโปรแกรม PowerPoint ที่เปิดอยู่ครับ
คือผมไอ้ Code ที่เปิดโปรแกรม PowerPoint คือ


Function OpenPPT(sFile As String, Optional bRunAsSlideShow As Boolean)
Dim oPPT As Object
On Error Resume Next
Set oPPT = GetObject(, "PowerPoint.Application")
If err.Number <> 0 Then
err.Clear
Set oPPT = CreateObject("PowerPoint.Application")
End If
On Error GoTo Error_Handler
oPPT.Visible = True
oPPT.Presentations.Open (sFile)
If bRunAsSlideShow Then oPPT.ActivePresentation.SlideShowSettings.Run
Error_Handler_Exit:
On Error Resume Next
Set oPPT = Nothing
Exit Function
Error_Handler:
MsgBox "The following error has occured." & vbCrLf & vbCrLf & _
"Error Number: " & err.Number & vbCrLf & _
"Error Source: OpenPPT" & vbCrLf & _
"Error Description: " & err.Description, _
vbCritical, "An Error has Occured!"
Resume Error_Handler_Exit
End Function


 '***************************************************************
 ' ที่ปุ่มคำสั่ง

Private Sub Command13_Click()
        Call OpenPPT("D:\Program\file1.ppsx", True)
End Sub


แล้วถ้าจะสั่งให้ปิดละครับ ต้องเขียนยังไงครับ
ขอบคุณครับ

หน้า: [1] 2 3