แสดงกระทู้

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.


Topics - arampong

หน้า: [1] 2
1
เรียนอาจารย์และท่านสมาชิก
    ผมขอสอบถามการจับข้อมูลตามเงื่อนไขครับ มีรายละเอียดดังนี้ครับ
               
        ผมมีตารางชื่อ 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 การดึงข้อมูลหน่อยครับ และผมส่งตัวอย่างโปรแกรมมาด้วยครับ
ขอขอบมากครับ


       

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

      ผมขอสอบถามแนวคิดและการอัพเดทข้อมูลเข้าตารางอัตโนมัติเมื่อ ข้อมูลในแถวเข้าเงื่อนไขครับ
คือ ผมทำ 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

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

3
ห้อง 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


ขอบคุณครับ



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

 Error



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

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


จากรูปผมต้องการหาค่าไปแสดงที่ 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 แต่ละช่วงมาบวกกัน
แต่เหมือนมันต้องเขียนให้มันวน บวกกันไปจนหมดแถวทุกช่วง
แต่จะมีวิธีเขียนยังไงครับ
ขอความกรุณาด้วยครับ ขอบคุณครับ

6
เรียนอาจารย์
ขอสอบถาม 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 มาดัดแปลงเอาครับ รบกวนด้วยครับ
ขอบคุณครับ

7
เรียนอาจารย์และสมาชิกทุกท่านครับ
     
     ผมอยากได้ 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


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

8
ขอสอบถามครับการโยนค่า Checkbox ข้าม Form ครับ
คือ ผมมีForm ชื่อ Frm1,Frm2  โดยที่
Frm1 รับค่าที่ Text1
สมมุติครับถ้าค่า Text1 = "QM" ถ้าใช่
ให้ Frm2 ที่ Checkbox1 = True จะเขียนแบบไหนครับ
ขอบคุณครับ

9



เป็นที่ Windows 10 ครับ  ส่วน Windows7 หรือต่ำลงมาใช้งานได้ปกติครับ(พอดีเปลี่ยนเครื่องเป็นWindows10 ครับจึงพบปัญหาตามภาพครับ ก่อนหน้าใช้ได้ปกติครับ)

Private Sub Command23_Click()
Dim Rec As String
Dim ol As Object
Dim olMail As Object
Dim strCC As String
If Text12 = " " Or IsNull(Text12) Then
MsgBox "¡ÃسÒãÊè¢éͤÇÒÁ"
Else
Rec = Text12.Value
Set ol = CreateObject("Outlook.Application")
Set olMail = ol.CreateItem(0)
With olMail
.To = "AAA@hotmail.com"
.Subject = "àÍ¡ÊÒèҡ IT"
.Body = Rec
.Display
'.Send
End With
Set olMail = Nothing
Set ol = Nothing
NetSend "192.168.1.1", Rec
End If
End Sub

10
เรียนอาจารย์ และสมาชิก
 ผมจะลองทำบัญชีรายรับรายจ่าย ในครอบครัวดู พอจะมีตัวอย่าง Access ให้ศึกษาหรือไม่ครับ
หากมีรบกวนแบ่งปันผมหน่อยครับ

ด้วยความกรณาอย่างสูงครับ ขอบคุณครับ

11
เรียนอาจารย์ทุกท่านรบกวนช่วยดู Code ให้หน่อยครับว่าผมผิดตรงส่วนไหนครับ

คือ 1.ผมเขียน If เพื่อเช็คค่า TXUserID ถ้าเป้นคาว่างให้แจ้งเตือนแล้วปิดเปิด form ใหม่
    2.ถ้าไม่ใช่ค่าว่าง ให้เช็คค่า TxItem  ว่าในฐานข้อมูลมีค่าหรือเปล่า คือ strSQL>0   ให้ทำงาน
    3.ถ้า strSQL <0 ให้เคลียค่า TxItem แล้วให้ setfocus ที่TxItem

ที่ติดตอนนี้คือครับ 1.ผมมี If 2 จุดแต่โปรแกรมทำไมให้ปิด End If จุดเดียวครับ
                      2.ค่า TXUserID เป็นค่าว่างแต่ทำไมไปทำงานตรงส่วน TxItem ได้ครับทั้งที่เช็คค่าว่างแล้ว
                      3.ค่า Else สุดท้าย TxItem.Value = Null ทำงานได้แต่ TxItem.SetFocus ทำไม Cursor ไปวิ่งไปที่กำหนดครับ

    ขอขอบคุณอาจารย์ไว้ล่วงหน้าครับ       
     

จากที่ผมเขียนครับ cODE ได้ตามนี้ครับ


Private Sub TxITEM_AfterUpdate()


Dim dbb As DAO.Database 'ÊÓËÃѺà¡çº Log
Dim rss As DAO.Recordset  'ÊÓËÃѺà¡çº Log
Dim strSQL As String
Dim strUserID As String
Dim strTxItem As String

On Error Resume Next

strTxItem = TxItem.Value
strUserID = TXUserID.Value

strSQL = DCount("Item", "QrItem")
Set dbb = CurrentDb
   
  If strTxItem = "" Then
            MsgBox "¡ÃسÒãÊè¼Ùéãªé§Ò¹¡è͹·Ø¡¤ÃÑ駤ÃѺ", vbOKOnly, "Warning!"
            DoCmd.Close acForm, Me.Name
            DoCmd.OpenForm "frmQR_T1" 
           
     ElseIf strSQL > 0 Then
                 
             Set dbb = CurrentDb
             Set rss = db.OpenRecordset("LogUser", dbOpenDynaset) 'ºÑ¹·Ö¡ Log ¡ÒÃãªé§Ò¹Å§ã¹µÒÃÒ§
             rss.AddNew
             rss!UserID = strUserID ' ºÑ¹·Ö¡ Item User
             rss!ITEM = strTxItem 'ºÑ¹·Ö¡ Item
             rss!Login = Now() 'ºÑ¹·Ö¡·Ñé§ Çѹ·Õè áÅÐàÇÅһѨ¨ØºÑ¹
            rss.Update
            rss.Close: Set rss = Nothing
            dbb.Close: Set dbb = Nothing
            Me.Requery
            Command9.SetFocus
           
           
    Else
                             
            MsgBox "Item ¹ÕéäÁèÁÕã¹ÃкºËÃ×ÍÂѧäÁèä´éà¾ÔèÁà¢éÒä»ã¹Ãкº", vbOKOnly, "Warning!"
            TxItem.Value = Null
            TxItem.SetFocus
     
      End If
     'End If   
End Sub

12
เรียนอาจารย์
       ผมมีตาราง T1 ทีมี ฟิว ITEM=ใช้เก็บชื่อรูป และ Picture=เก็บพาทรูปภาพ ครับ 
       ที่ Form มี Text  ITEM และ Picture หากเรียกข้อมูล Item แล้วจะแสดง Picture ทันที
     
      คือพอแสดงแล้วผมอยากให้เปิดรูปภาพขึ้นมาเลยครับ จะต้องเขียน Code ยังไงครับ
      ปกติมันจะโชว์ Link แล้วต้องกดที่ Link ถึงจะเปิดให้ครับ
คือต้องการจะเปิดภาพ Auto ทันทีทีเรียกชื่อ Item ขึ้นมาถูกครับ

ขอบคุณครับ

13
เรียนอาจารย์

         ผมต้องการทำปุ่มCMD  เพื่อลบข้อมูลที่พิว F1 ลบทุกRecord คือลบเฉพาะพิวนี้นะครับ ที่ตาราง T1 จะเขียนคำสั่งยังไงครับ
เข้าใจว่าน่าจะเป็น SQL  Update หรือเปล่าครับ ลบกวนแนะนำด้วยครับ

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

14
สอบถามอาจารย์ครับ
ผมจะทำการเลือกข้อมูลจากตารางT1 ไปยัง T2 ดังรูปครับ
โดยมีเงื่อนไขว่า
ให้เอาชื่อที่ไม่ซ้ำกัน  หากซ้ำกันให้เอา ID ล่าสุดหรือ IDที่มากที่สุดครับ

ขอบคุณครับ



15
เรียนท่านอาจารย์

กระผมมีตาราง T1  มีฟิวชื่อ F1
ที่ F1 มีค่าดังนี้

AB01
AB02
BC01
BC02
AB03
AB06
CA01
CA02

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

16
เรียนอาจารย์
              ผมเขียน Insert Into มี Form หลัก และ Form ย่อย และผมเขียน Codeที่SubForm ครับ แต่มัน Error 2465 ดูจาก Error คนหาดูเขาว่าผมเรียกใช้ที่ SubForm แต่ประกาศที่ Form หลัก ถ้าผมจะใช้จะแก้อย่างไรครับ น่าจะเปลี่ยนตรงนี้Me.Name แต่จะเขียนเช่นไรครับ

DoCmd.SetWarnings False
DoCmd.GoToRecord acDataForm, Me.Name, acFirst
DoCmd.RunSQL "Insert into TB_Main2([CodeID], [CalibrationDate],[NaxtDateCalibration],[Frequency],[LocationCalibration]) values('" & CodeID & "', '" & CalibrationDate & "','" & NaxtDateCalibration & "','" & Frequency & "','" & LocationCalibration & "')"
DoCmd.SetWarnings True


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

17
สวัสดีอาจารย์ทุกท่านครับ

            ผมขอสอบถามอาจารย์เรื่องเช็คบ๊อก(Checkbox)ครับว่าจะสามารถให้ใส่ค่า True False อัตโนมัติได้หรือไม่ครับ
เช่นที่ตาราง TB1 มีพิวส์ 3 พิวส์   
         Tx1  เก็บค่า 1 และ 2 
         Ch1  เป็น CheckBox เก็บค่าเมื่อ Tx1="1" ให้=True ถ้าไม่ใช่ให้ = False
         Ch2  เป็น CheckBox เก็บค่าเมื่อ Tx1="2" ให้=True ถ้าไม่ใช่ให้ = False

ให้ในตาราง หรือ Query ก็ได้ครับ
ผมมองออกใกล้เคียงที่Criterir ตรง Query ใส่ Iff([Tx1],True,False) แต่ตรง True,False ใส่อะไรครับมันไม่ยอมติดถูกให้

ปกติผมให้รับค่าจาก Form เลย แต่อยากให้เปลี่ยนค่าเองเพราะกรณีผมเข้าไปแก้ที่ตารางตรงๆ
อยากให้มันเปลี่ยนเองเลยครับ เพราะบางทีลืมเปลี่ยนทำให้ค่ามัน Error ครับ
ขอบคุณครับ

18
สวัสดีครับอาจารย์ และพี่ๆทุกท่าน

          ผมอยากสอบถามการบวกปี พ.ศ.ตาม Format ครับ
รายละเอียดดังนี้ครับ
         
ผมมี Text1 รับค่าวันที่ตาม Format(Date(),"mm-yy")  จะได้ ก.พ.61 ตามวันที่เครื่องผมครับ
1.ผมอยากให้เวลาไปใช้เครื่องไหนก็ได้ที่ไม่ใช่ Format เหมือนที่เครื่องผมแต่ก็ยังใช้งานได้ครับ
2.ผมมี Text2 และจะบวกค่า1 เข้าไปที่ปี พ.ศ. จะบวกยังไงครับ ก.พ.61 ก็จะเป็น ก.พ.62

ขอบคุณครับ

หน้า: [1] 2