แสดงกระทู้

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 ... 3 4 5 [6] 7 8 9 ... 21
91
ดูเหมือนเป็นการ Running Total นะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: nawahovvp

92
ห้อง MS Access / : Function Year
« เมื่อ: 03 เม.ย. 62 , 11:06:14 »
ใช้ Year(Now()) ครับ
ถ้ามันได้ 2019 แต่อยากได้ 2562 ก็ ใช้เป็น

Year(Now())+543

หรือถ้าต้องการเปลียนจาก 2562 เป็น 2019 ก็ใช้
Year(Now())-543

หรือใช้ Format(Now(),"YYYY")

แต่ถ้าจะเอาจาก วันที่ Field Date ชื่อ DateIn
ก็กำหนดเป็น
Format(DateIn,"YYYY") ก็ได้คับ

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

93
ส่งไฟล์นั้นมาครับ เดี่ยวผมเพิ่มให้

ขนาดไฟล์เกินอะครับ รบกวนของ email ได้มั้ยครับผม
ทำยังไงรบกวนบอกรายละเอียดได้มั้ยครับ อยากเรียนรู้ด้วยครับผม
ส่งข้อความไปแล้วครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MartSirawit

94
ส่งไฟล์นั้นมาครับ เดี่ยวผมเพิ่มให้
โพสต์นี้ได้รับคำขอบคุณจาก: MartSirawit

95
วิธีแบบ DIY ซักหน่อยนะครับ
สมมุติว่ามีฟิลล์ เก็บวันที่ไว้ชื่อ Datestart อยู่ในตาราง table1
ที่คิวรี่ ใส่โค้ดตามนี้

โค๊ด: [Select]
SELECT Table1.DateStart, Format([datestart],"dd/mm") & "/" & Format([datestart],"yyyy")+1 AS EventDate
FROM Table1;

เราจะได้วันที่ปัจจุบันและวันที่ของปีหน้าที่จะมาถึงคือเป็นการบวก ไป 1 ปี

ส่วนที่ฟอร์มก็กำหนด Event ให้แสดง msgbox แจ้งเตือนขึ้นมาประมาณนี้ครับ
โค๊ด: [Select]
Private Sub Form_Timer()
Static count As Integer
        count = count + 1
If count = 30 Then
        Me.TimerInterval = 0
        Call checkeventdate
End If
End Sub
Sub checkeventdate()
Dim Ondate As Date
Dim Edate As Date

        Ondate = Format(Now(), "DD/MM/YYYY")
        Edate = Format(DLookup("Eventdate", "QryEventDate"))
       
        If Edate = Ondate Then
            MsgBox "มีข้อมูลที่ครบรอบปีแล้ว", vbInformation, "แจ้งเตือน!!"
        End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: MartSirawit

96

ลองดูตัวอย่างนี้คับใช้การแปลงเวลาเป็น จำนวนวินาที แล้วนำมารวมแล้วแปลงกลับมาอีกทีครับ  :grin: :grin:

ที่คิวรี่ สร้างฟิลล์ใหม่ใส่โค้ด
โค๊ด: [Select]
Second: DateDiff("s",[ABS_SDATE],[ABS_ENDATE])
ส่วนโค้ดที่ตัว Control ใช้การอ้างอิงจาก textbox ชื่อ Sum_Second นะครับ
=Format(Int([Sum_Second]/3600),"00") & ":" & Format(Int(([Sum_Second]-(Int([Sum_Second]/3600)*3600))/60),"00") & ":" & Format((([Sum_Second] Mod 60)),"00")
โพสต์นี้ได้รับคำขอบคุณจาก: sharepro

97
ใช่ครับ การใช้ DSum เป็นการเรียงลำดับ เพื่อคำนวนผลจาก Record ก่อนหน้า ออกมาตามลำดับ
ครับ
เช่น
โค๊ด: [Select]
RT: Format(DSum("Field1","Table1","ID<=" & [ID]),0)
โพสต์นี้ได้รับคำขอบคุณจาก: Un

98
data type Field นั้นเป็นอะไรครับ ท่าน Un ลองกำหนด Format ที่ต้องการที่ Field นั้นดูครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Un

99
อยู่ข้างล่าง ครับ  กรณีตอบกระทู้มันจะขึ้นว่าตั้งกระทู้ครับ
ส่วนกรณีแก้ไข ปุ่มจะเปลี่ยนเป็น ปุ่มบันทึก ครับ




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

100
ห้อง MS Access / : Popup ข้อความ
« เมื่อ: 19 มี.ค. 62 , 09:35:00 »
ใช้ .ControlTipText แสดงข้อความเมื่อเม้าส์ไปโดนก็ได้นะคับ
มีตาราง Table1
มี Field ID , Comment

มี textbox ID กับ Comment

โค๊ด: [Select]
Private Sub Comment_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not IsNull(Me.Comment) And Not IsNull(Me.ID) Then
Me.Comment.ControlTipText = DLookup("Comment", "Table1", "ID =" & Me.ID & "")
Else
Me.Comment.ControlTipText = Null
End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: naekkhung

101
ห้อง MS Access / : input mark
« เมื่อ: 17 มี.ค. 62 , 14:02:23 »
ใส่ Input Mark ยังงัย ให้บันทึกไอดีต่างชาติ แบบนี้ได้ครับ

0-0000-T035991-3
น่าจะแบบนี้นะครับ
0\-0000\-A000000\-0;0;_
โดย A ใช้แทนตัวอักษรหรือตัวเลข 1 ตัวคับ

ผมใช้ Event Form_Load นะครับปกติ หรือกำหนดที่ตัว Control เลยก็ได้คับ
โค๊ด: [Select]
Private Sub Form_Load()
Me.Text2.InputMask = "0\-0000\-A000000\-0;0;_"
End Sub

ไม่รู้ผมตอบตรงโจทย์ หรือเปล่านะครับ
ไม่รู้ว่าต้องการแยก ID T0359913 เป็น 0-0000-T035991-3
หรือต้องการกำหนด InputMask แบบข้างบน  :cool: :cool:

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

102
สามารถกำหนดได้ตรง Event Detail_Print นะครับ
โดยในหน้าออกแบบเราใส่เส้นไว้ใต้ textbox 1 เส้น ผมตั้งชื่อว่า  Line1 กำหนดความหนาของเส้นไว้ให้เรียบร้อยครับ
ส่วนโค้ดก็ตามนี้
โค๊ด: [Select]
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
If Me.id1 = "3" And Me.Team = Text3 Then
Me.Line1.Visible = True
Me.Line1.BorderColor = vbRed
Else
Me.Line1.Visible = False
End If
End Sub

text3 คือ หัวของรายงาน ที่ Group เอาไว้

จากคำสั่งนี้ ไม่ว่ามีกี่ิอันดับในแต่ละกลุ่ม คำสั่งจะจับข้อมูลที่ ลำดับเท่ากับ 3 และ อยู่ในกลุ่มเดียวกันถึงจะแสดงเส้นสีแดงขึ้นมาคับ

ผลลัพธ์ที่ได้

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

103
ผมหมายถึงเป็นไฟล์ access ครับ เป็นรูปแล้วผมจะ Add code ยังไงละครับ  :startle: :startle:
โพสต์นี้ได้รับคำขอบคุณจาก: pradooj

104
อันใหม่เพื่อท่านจะ ใช้ลิ้ง Youtube ในการ download ครับ
กดปุ๊บ ลิ้งดาวน์โหลดสีเขียวแสดงปั๊บ  :cool: :cool:

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

105
ครับ อาจารย์ผมไปเจอวิธีนี้จากเว็บต่างประเทศ ตรงกำหนดสีกับ ข้อความครับ
เลยเอามาประยุกต์ใช้กับโค้ดนี้ครับ
ส่วนโค้ดนี้ผมไปค้นหาเจอจาก เว็บนอกครับ
มาแบ่งบันให้กับเพื่อนๆสมาชิกคับ โดยเอามาปรับโค้ด จาก excel เป็น Access ครับ  :grin: :grin: :grin:
โพสต์นี้ได้รับคำขอบคุณจาก: Un

106
ห้อง MS Access / : สร้าง กดปุ่ม button
« เมื่อ: 10 มี.ค. 62 , 16:33:48 »
ต้องการสร้าง กดปุ่ม button  มีปุ่มบันทึกข้อมูล  กับปุ่มจบการทำงาน
เขียนโค๊ตอย่างไรครับให้ปุ่มกดจบการทำงาน ไม่ทำงาน  จนกว่าจะมีการกดปุ่มบันทึกข้อมูลถึงจะกลับมาทำงานได้ครับ

มีหลายวิธีครับ ตัวอย่างเช่น
การกำหนดตัวแปร ไว้เพื่อใช้ตรวจสอบสถานะการทำงานของปุ้มบันทึกเช่น
โค๊ด: [Select]
Private Sub BtnSave_Click()
Dim SaveEvent  As String
Dim DB As Database
Dim RS As Recordset
   If MsgBox("ต้องการบันทึกข้อมูลข้อมูล ?", vbOKCancel + vbQuestion, "สอบถาม") = vbOK Then
        Set DB = CurrentDb()
        Set RS = DB.OpenRecordset("Table1", DB_OPEN_DYNASET)
    RS.AddNew
    RS![Field1] = Me.Text1
    RS![Field2] = Me.Text2
    RS![Field3] = Me.Text3
    RS.Update
    RS.Close
    DB.Close
    Set RS = Nothing
    Set DB = Nothing
    Call ResetForm
    SaveEvent = "1"  'ถ้าเราบันทึกก็ให้ตัวแปร = 1
    Else
    SaveEvent = "0" 'ถ้าเราไม่บันทึกให้ตัวแปร = 0
    End If
    If SaveEvent = "1" Then
    Me.BtnClose.Enabled = True
    ElseIf SaveEvent = "0" Then
    Me.BtnClose.Enabled = False
    End If   
End Sub

คำสั่งในการเปิดปิดการใช้งานคือ ชื่อตัวControl.Enabled = False หรือ True
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid, Pakkret Non

107
ขอเพิ่มเติมอีกวิธีนะครับ


ที่ Module ใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
Function MyHexColor(ByVal StrHex)
 
    If Len(StrHex) = 7 Then StrHex = Mid(StrHex, 2, 6)
    If Len(StrHex) = 6 Then

        num_array = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f")
        char1 = LCase(Mid(StrHex, 1, 1))
        char2 = LCase(Mid(StrHex, 2, 1))
        char3 = LCase(Mid(StrHex, 3, 1))
        char4 = LCase(Mid(StrHex, 4, 1))
        char5 = LCase(Mid(StrHex, 5, 1))
        char6 = LCase(Mid(StrHex, 6, 1))
        For i = 0 To 15
            If (char1 = num_array(i)) Then position1 = i
            If (char2 = num_array(i)) Then position2 = i
            If (char3 = num_array(i)) Then position3 = i
            If (char4 = num_array(i)) Then position4 = i
            If (char5 = num_array(i)) Then position5 = i
            If (char6 = num_array(i)) Then position6 = i
        Next
        If IsEmpty(position1) Or IsEmpty(position2) Or IsEmpty(position3) Or IsEmpty(position4) Or IsEmpty(position5) Or IsEmpty(position6) Then
            MyHexColor = -1
        Else
            MyHexColor = RGB(position1 * 16 + position2, position3 * 16 + position4, position5 * 16 + position6)
        End If
    Else
        MyHexColor = -1
    End If
End Function

ที่ฟอร์มกำหนดค่า ในส่วนของ Detail
โค๊ด: [Select]
Private Sub รายละเอียด_Paint()
If Not IsNull(Me.HEX) Then
    Me.COLOR.BackColor = MyHexColor(HEX)
    Else
    Me.COLOR.BackColor = MyHexColor("#FFFFFF")
 End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown, สันติสุข, Kxess, nikorn

108
เช่น พนักงาน ID  A001 อยากจะให้ดึงรูปภาพ ของพนักงานคนนั้น มาแสดงในฟอร์ม หรือ รายงาน โดยอยากให้ผูก ID กับชื่อ image file ทำอย่างไรครับ

\images\A001.jpg
\images\A002.jpg
\images\A003.jpg
\images\A004.jpg

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


มีให้ลองนำไปใช้ดู 2 แบบนะครับ
ถ้าในฟอร์มหรือรายงาน ท่านเอา Field ID เข้ามาใส่ไว้ด้วย และ ตั้งชื่อ Textbox ว่า ID เราก็สามารถกำหนดค่าให้กับ กรอบ Image ที่ต้องการได้ครับเช่น
แบบที่ 1 เขียนโค้ดบนฟอร์มหรือรายงาน
Private Sub Form_Current()
Call PathOfImage
End Sub

Sub PathOfImage()
Dim StrPath, StrPathDir As String
StrPath = "C:\images\" & Me.ID & ".JPG"  'กำหนด Path ของรูปภาพโดยอ้างอิงไปที่ textbox ID
StrPathDir = Dir(StrPath) 'ตรวจสอบดูก่อนว่ามีไฟล์รูปชื่อนี้อยู่จริงหรือไม่
If StrPathDir <> "" Then 'ถ้าตรวจสอบแล้วมีอยู่จริง
Me.Image.Picture = StrPath 'ถ้ามีอยู่ก็ให้กำหนด Path ให้กับ Image
Else
Me.Image.Picture = "" 'ถ้าไม่เจอไฟล์รูปที่ตรงกับ ID ของเราก็ให้แสดงกรอบว่างๆไป
End If
End Sub

แบบที่ 2 สร้าง Calculate Field
สร้าง Field Calculate มาแล้วใส่ค่าไปว่า
"C:\images\" & [ID] & ".JPG"
แล้วท่านก็ไปกำหนดแหล่งตัวควบคุมของ Image เอาท่านก็จะได้ ลิ้งอัตโนมัติเลยคับ

ผมมีตัวอย่างให้ท่านคลาย Zip ไปไว้ที่ Drive C แล้วลองเทสดูคับ
โพสต์นี้ได้รับคำขอบคุณจาก: diehard4, sommai

หน้า: 1 ... 3 4 5 [6] 7 8 9 ... 21