แสดงกระทู้

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] 2 3 4 ... 24
1
ห้องโฆษณาฟรี / : มีใครรับเขียน access บ้างไหมคะ
« เมื่อ: เมื่อวานนี้ เวลา 15:53:53 »
ห๊ะ! ไปเห็นได้ไง
อ๊ะ! ผมก็ทำงานที่นี้ไงครับ  :miao:
โพสต์นี้ได้รับคำขอบคุณจาก: OddyWriter

2
ห้อง MS Access / : ค้นหาสินค้าไม่พบ
« เมื่อ: 14 ม.ค. 64 , 15:40:29 »
รหัสสินค้าเรามั่นใจไหมครับว่า ไม่มีช่องว่างระหว่างรหัสสินค้า สมมุติเครื่องหมาย _ แทนช่องว่างของรหัสช่องว่างนี้อาจจะเกิดจากการกด Back Space หรือเคาะคานเว้นวรรค ครับ
รหัสปกติ 1004000300800
เป็นไปได้ไหมบางครั้งรหัสอาจจะเป็น _1004000300800  หรือ 1004000300800_ หรือ _1004000300800_
ทำให้เวลาเปรียบเทียบรหัสในการค้นหาไม่เจอ
สามารถใช้ Trim() ในการตัดช่องว่าง
โพสต์นี้ได้รับคำขอบคุณจาก: abc def

3
แอด Email: มาคุยรายละเอียดกันครับ
pinnarong83@gmail.com
โพสต์นี้ได้รับคำขอบคุณจาก: noi

4
พรุ่งนี้นะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

5
OShiftID ในตาราง T_OT ชนิดข้อมูลเป็นแบบไหนครับ
ShiftID ในตาราง T_Shift ชนิดข้อมูลเป็นแบบไหน

สามารถ Remote ไปเช็คได้หรือไม่
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

6
RelationShip เช็คการกำหนด Primary Key
ข้อความแจ้งเตือนแบบนี้เกิดจาก การกำหนดความสัมพันธ์กันแล้ว ไม่ได้สร้างข้อมูลในฟิลล์ PK ให้ตารางหลักก่อน
เช่น เมื่อต้องการเพิ่มข้อมูลให้ ตารางที่ 2 ตารางแรกต้องมี ข้อมูลในฟิลล์ PK ด้วยเหมือนกันมันถึงจะยอมให้ผ่านได้


เช่น ท่านจะเพิ่มข้อมูลตารางที่ 2 ID ก็ต้องมีใน ตารางที่ 1 ด้วยครับ

1.เพื่อความชัดเจน ให้แสดงรูป การกำหนด Relationship มาดู
2.แสดงการกำหนด Record Source ในฟอร์มมาดู


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

7
ในคิวรี่ คงต้องเขียนฟังชั่นนะครับ แล้วมาเรียกใช้ในคิวรี่แต่ผมไม่เคยลอง รออาจารย์ท่านอื่นๆ


แต่ถ้าการสร้างข้องมูลไปวางในตาราง อีกอันนั้นผมใช้แบบนี้ครับ
ตารางหลักชื่อ MyTable
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
--------------------------------------------------
มีตารางแสดงผลชื่อ TblResult
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
โค้ด

โค๊ด: [Select]
Private Sub concatenateString()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim rstOut As DAO.Recordset
Dim strID As String
Dim strITEM As String
Set db = CurrentDb()
Set rst = db.OpenRecordset("SELECT Mytable.ID, Mytable.ITEM FROM Mytable GROUP BY Mytable.ID, Mytable.ITEM ORDER BY Mytable.ID, Mytable.ITEM DESC;", dbOpenDynaset)

If Not rst.BOF And Not rst.EOF Then
  rst.MoveFirst
  strID = rst!ID
  strITEM = rst!Item
 
  rst.MoveNext
   
  Do Until rst.EOF
    If strID = rst!ID Then
      strITEM = strITEM & ", " & rst!Item
    Else
    Set db = CurrentDb()
    Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
    rstOut.AddNew
    rstOut!ID = strID
    rstOut!Item = strITEM
    rstOut.Update
       
      strID = rst!ID
      strITEM = rst!Item
        rstOut.Close
        db.Close
    End If
    rst.MoveNext
  Loop
    Set db = CurrentDb()
    Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
    rstOut.AddNew
    rstOut!ID = strID
    rstOut!Item = strITEM
    rstOut.Update
      strID = rstOut!ID
      strITEM = rstOut!Item
    rstOut.Close
    db.Close
End If
Set rst = Nothing
Set db = Nothing
Set rstOut = Nothing
End Sub
ที่ปุ่มใส่โค้ดเพื่อเรียกใช้งาน

โค๊ด: [Select]
Private Sub Command0_Click()
concatenateString
End Sub

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

8
ห้อง MS Access / : preview and new record
« เมื่อ: 07 ม.ค. 64 , 15:24:34 »
สอบถามผู้รู้ครับ
ผมต้องการสร้างปุ่ม preview และ Add NewRecord ในปุ่มเดียวต้องเขียน code อย่างไรครับ ?
ที่ปุมใส่ 2 โค้ดนี้เข้าไป
DoCmd.OpenReport "ชื่อReport", acViewPreview
Docmd.GoToRecord,,acNewRec
โพสต์นี้ได้รับคำขอบคุณจาก: phathako

9
ไม่รู้ว่าการแสดงข้อมูลเป็นแบบไหนนะครับ แต่ถ้าทำวิธีง่ายๆ คือสร้างคิวรี่ไว้ตรวจสอบ เพื่อใช้กับเงื่อนไขว่า เป็นข้อมูลของเดือนที่แล้วหรือไม่
ถ้าเป็นข้อมูลของเดือนที่แล้วก็ กำหนดให้Formให้ ห้ามแก้ไข = true ได้ครับ

สร้างตารางไว้ตรวจสอบนี้ มีเก็บ ID ของข้อมูลหลัก และ วันเดือนปี ของข้อมูลหลัก เพื่อนำมาเช็คเดือนว่าเป็นเดือนปัจจุบันหรือไม่
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013

10
ห้อง MS Access / : error 2501 เปิดรายงาน
« เมื่อ: 05 ม.ค. 64 , 08:44:10 »
ใช้การดักจับ error ได้ไหมครับ ลองดูครับ

Private Sub rptTest_Click()
    On Error GoTo ErrHandler
    DoCmd.OpenReport "ReportNotifyMulti", acViewPreview
    Exit Sub
ErrHandler:
    If Err = 2501 Then
      Resume Next
    Else     
        MsgBox Err.Description, vbExclamation
    End If
End Sub


ถ้าไม่ได้จะหาวิธีอื่นให้ครับ

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

11
ปรับใหม่ล่าสุด V3 นะครับ น่าจะตรงสุดละ
โพสต์นี้ได้รับคำขอบคุณจาก: Normunu

12
ขอทราบอีกคำถามหนึ่งนะคะ>> ทำเลขลำดับในForm ยังไงหรอคะ? เพราะถ้าเป็นใน Report ก็สร้างtextbox ให้ control souce "=1 " และเลือก Running Sum เป็น "over all"  รบกวนช่วยหน่อยนะคะ ขอบคุณค่ะ

ข้อที่ 1 ส่งตัวอย่างข้อมูลมาครับ

ข้อที่ 2 ลองดูจากกระทู้นี้ครับมีตัวอย่าง
https://www.thai-access.com/index.php?topic=331.msg1345#msg1345
โพสต์นี้ได้รับคำขอบคุณจาก: Normunu

13
1.ศึกษาการสร้าง HeadGroup ของรายงานครับ โดยเอา ประเภทใหญ่ เป็น Headgroup ใน thai access นี้มีตัวอย่างอยู่เยอะครับ
2.ใช้การกำหนดรูปแบบการแสดง อยู่ตรง Sectionต่างๆ ครับ มันจะมีให้บังคับขึ้นหน้าใหม่ ก่อนส่วน หลังส่วน หรือก่อนและหลัง

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

14
งั้น Endtime รูปแบบข้อมูลต้องเป็นแบบ General Date ครับ

ลองดูตัวอย่างการเช็คเงื่อนไข โดยกำหนดว่า ถ้า Endtime น้อยกว่า StartTime ให้บวกไปอีก 1 วันเช่น

Private Sub SaveData()
 Dim rst As DAO.Recordset
 Dim dtEndtime As String
 
            Set rst = CurrentDb.OpenRecordset("table1", dbOpenDynaset)
            rst.AddNew
            rst!Ondate = Me.Ondate
           
            If Me.EndTime < Me.StartTime Then
            dtEndtime = Me.Ondate + 1 & " " & EndTime
            Else
            dtEndtime = Me.Ondate & " " & EndTime
            End If
           
            rst!StartTime = Me.StartTime
            rst!EndTime = CDate(dtEndtime)
            rst.Update
           
            rst.Close
            Set rst = Nothing
End Sub


และกำหนด รูปแบบข้อมูลในตารางเป็น Date/Time กำหนดเป็น General Date
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

15
ที่ Module

Option Compare Database
#If Win64 Then
    Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
    Private Declare Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Function SoundMe() As String
    Call PlaySound("c:\windows\media\policesiren.WAV", 0, SND_ASYNC Or SND_FILENAME)
    SoundMe = ""
End Function

Public Sub StopSound()
    PlaySound vbNullString, 0, 0
End Sub


ที่ command button
เพิ่ม
  SoundMe 'เมื่อเล่นเสียงแล้ว ต่อไปจะเด้ง msgbox ก็ดักเงื่อนไขการกด OK
  If MsgBox("ข้อมูลซ้ำกัน กรุณาตรวจสอบ", vbOKOnly, "program") = vbOK Then
    StopSound
  End If

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

16
เปลี่ยน Fotmat จาก พุทธศักราช เป็น คริสต์ศักราช ก็ได้ละครับ

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

หน้า: [1] 2 3 4 ... 24