แสดงกระทู้

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 2 3 [4] 5 6 7 ... 21
55
ตามความเป็นจริง จำนวนใดๆ หาร 0 มันทำไม่ได้อยู่แล้วครับ

ถ้า จำนวนตัวเลข หาร 0 จะแสดง #Div/0!

ถ้า 0 หาร 0 ก็จะแสดง #Num ครับ

แต่เรากันข้อผิดพลาดได้โดยการกำหนดเงื่อนไข ก่อนคำนวนเช่น
เปลี่ยนจาก [Sum]/[Last]
เป็น
โค๊ด: [Select]
IIf([Sum]<>0 And [last]<>0,[Sum]/[Last],0)
หรือถ้าอยากให้แสดงเป็นช่องว่างแทนเลข 0 ก็ใส่ Null ก็ได้คับ
โค๊ด: [Select]
IIf([Sum]<>0 And [last]<>0,[Sum]/[Last],null)
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

56
โอ้แย่แล้ว...พอดีเป็นเครื่องที่ทำงาน เค้า Block ไม่ให้ภายนอกเข้ามาได้ครับ....ให้ผมส่งไฟล์ไปให้ หรือ ให้ทำอย่างไรดีครับ....ขอบคุณครับ
แนบไฟล์ส่งมาใน Inbox เลยคับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

57
ธรรมดา มันจะมีให้ติ๊ก business กับ None commer...... ติ๊ก None แล้ว Next ยาวๆ พอติดตั้งเสร็จมันจะมี ID กับ password ของเรา ก็เอารหัสนั้นส่งให้ผมทาง Inbox ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

58
https://dl.teamviewer.com/download/TeamViewer_Setup.exe

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

59
ปัญหาเกิดจาก คุณไปกำหนด frm_search ที่เป็น subform ให้คุณสมบัติของฟอร์มห้ามแก้ไขคับ


แก้เป็น ใช่ แล้วจะสามารถติ๊กได้คับ
 :grin: :grin:
โพสต์นี้ได้รับคำขอบคุณจาก: Supanida

60
ถ้าแบบนี้ละครับ ถ้าไม่ได้ก็ teamviewer ไปดูให้ก็ได้นะครับ  :cool: :cool:

โค๊ด: [Select]
Private Sub TxtFindDapartment_GotFocus()
Dim strFindName As String
If Not IsNull(Me.Parent.TxtFindName) Then
Me.Parent.TxtFindName = Null
Me.Parent.TxtPicturePath = ""
strFindName = "SELECT * FROM [Personal_ST26] WHERE [MName] = null ;"
Me.Parent.RecordSource = strFindName
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

61
งั้นใช้แบบนี้ครับ ถ้าให้ไปที่ Record  แรกแล้วให้ไปต่อ Record  อันหลัง

Private Sub Btn_Previous_Click()
Me.Recordset.MovePrevious
If Recordset.BOF Then
   Recordset.MoveLast
End If
End Sub

ถ้าRecord จากหลังจนสุด แล้วให้ไปต่อ Record หน้าสุด
Private Sub Btn_Next_Click()
Me.Recordset.MoveNext
If Recordset.EOF Then
   Recordset.MoveFirst
End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: arampong

62
ไป Record แรกสุด DoCmd.GoToRecord,,acFirst
ไป Record ท้ายสุด docmd.GoToRecord,,acLast ครับ

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

63
ถ้าแบบนี้ละครับ

โค๊ด: [Select]
Private Sub TxtFindDapartment_GotFocus()
Dim strFindName As String
If Not IsNull(Me.Parent.TxtFindName) Then
Me.Parent.TxtFindName = Null
Me.Parent.TxtPicturePath = ""
strFindName = "SELECT * FROM [Personal_ST26] WHERE [MName] = null ;"
Me.Parent.RecordSource = strFindName
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

64
สร้างฟอร์มให้ค้นหาข้อมูลบุคคลากร โดยให้ค้นได้ 2 ทาง เพื่อให้ผู้มาติดต่อใช้งานค้นหา คือ
1.ค้นจากชื่อ เลยสร้างฟอร์มให้มี datasource เป็นตาราง "ข้อมูลส่วนตัว" ใช้ค้นข้อมูลจากชื่อ เป็นฟอร์มหลัก  และ
2.ค้นจากแผนกงาน เลยสร้างเป็น subform ที่มี datasource เป็นตาราง"แผนกงาน" ใช้ค้นข้อมูลจากแผนกงาน เป็นฟอร์มย่อยที่อยู่ในฟอร์มหลัก (ข้อ 1.)
     ทีนี่อยากจะขอให้ช่วย คือ เมื่อผู้ใช้บริการคนแรก มา ใส่ชื่อพนักงาน ค้นหา แล้ว พบ และแสดงข้อมูลมาแล้ว แต่เมื่อผู้ใช้คบริการคนถัดไปมาจะค้นหาจากแผนกงาน แต่ข้อมูลของบุคคลากรคนเก่ายังค้างอยู่ที่หน้าจอทำให้เมื่อค้นจากแผนกงานได้ข้อมูลใหม่มาแล้วแต่หน้าจอฟอร์มหลักยังแสดงข้อมูลที่เกิดจากการค้นหาของคนแรกอยู่ จะล้างข้อมูลที่เกิดจากการค้นหาของคนแรกได้อย่างไรครับ...ขอขอบคุณครับ
ผมสมมุติ textbox ค้นหาจากชื่อว่า txtFindName
           textbox ค้นหาจากแผนกว่า txtFindDepartment
           Form หลักชื่อ FrmMain

ถ้าต้องการให้ล้างค่าที่กรอกไว้ของ txtFindName ออกไป ก็กำหนด Event GotFocus เอาก็ได้ครับเช่น

Private Sub txtFindDepartment_GotFocus()
Forms!frmMain.txtFindName = Null
Forms!frmMain.txtFindName.Requery
Me.txtFindDepartment.Requery
End Sub

ที่ผมสั่ง Forms!frmMain.txtFindName.Requery เผื่อว่าคุณใช้การแสดง การค้นหาโดยใช้ Criteria จาก Query
พอเราสั่ง = null แล้ว Requery ข้อมูลที่แสดงก็จะหายไปครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

65

ถ้า 1 item สามารถมีได้หลายรูป แนะนำให้สร้าง ความสัมพันธ์ แบบ One to Many ครับ
ตารางจะมี T1 และ T2


T1 เก็บ ItemID , ITEM กำหนด ItemID เป็น Primary Key
T2 เก็บ ItemID , Picture กำหนด ItemID ให้มีค่าซ้ำกันได้

Form ที่จะแสดงใช้การสร้าง ฟอร์มหลักและฟอร์มย่อย
ตามตัวอย่างนี้ครับ



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

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

ขอบคุณครับ

คุณมี textbox ชื่อ item และ Picture ในฟอร์มแล้ว
ในตัวอย่างผมใช้เป็น txtitem กัย txtpicture นะครับ
ถ้าอยากแสดงรูปภาพ
ก็ควรมี กรอบรูปภาพ เพื่อใช้แสดงรูปภาพนะครับ


และ ที่แหล่งตัวควบคุมหรือ RecordSource กำหนดไปว่า  =txtpicture (อ้างอิงพาทจาก textbox txtpictureครับ)
ดูจากตัวอย่างแบบที่2

สอบถามเพิ่มเติมครับ การเก็บชื่อรูปกับ เก็บพาทรูปเป็นแบบไหน
  ชื่อรูปเช่น ITEM = 01.jpg  อย่างนี้ไหม เพราะการแสดงรูปได้ต้องมี พาท,ชื่อไฟล์,นามสกุลไฟล์ รวมเข้าด้วยกัน
  ส่วนพาทผมสมมุติ Picture = C:\Documents and Settings\office\My Documents\My Pictures\
หรือแบบนี้            Picture = C:\Documents and Settings\office\My Documents\My Pictures\01.่jpg
เพราะคำสั่งที่จะใช้มันจะไม่เหมือนกัน

รบกวนอธิบายเพิ่มเติมอีกนิดกว่าพาท และ ชื่อที่เก็บเป็นแบบไหนครับ
ส่วนการนำมาแสดงทำได้หลายแบบมาก
จากตัวอย่างแบบที่ 1 คุณลองไปกำหนด พาทรูปภาพ และ ชื่อรูปภาพที่มีเอาดูนะครับ
ถ้าชื่อ พาทกับชื่อไฟล์ แยกออกจากกันเราก็กำหนดให้มันรวมกันก่อนแสดง ลองดูที่ RecordSource ตัวอย่างที่ผมแนบไปนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: arampong, thaworn Panchan

67
ห้อง MS Access / : Running Number ใน Query Group By Type
« เมื่อ: 28 เม.ย. 62 , 17:18:02 »
RunningNo.    Price      Type
1                   100        A
2                   120        A
3                   130        A
1                   80          B
2                   90          B
1                   78          C
2                   80          C
3                   90          C
4                  100         C

ไม่ทราบว่า ใน Query แบบนี้ ต้องทำเช่นไรครับผม  :question:

ตามนี้เลยคับ
ผมสมมุติตารางที่ทำชื่อ Table1 นะครับ มีฟิล์ Type กับ Price ตามตัวอย่าง

SELECT T.*, (select count(*) from Table1 where T.Price>=Price and  T.Type=Type) AS RunningNo
FROM Table1 AS T
ORDER BY T.Type, T.Price;
โพสต์นี้ได้รับคำขอบคุณจาก: diehard4, Nantnapus

68
โค๊ด: [Select]
intCount = DCount("*", "[บุคคลากร]", "[ชื่อ-นามสกุล] Like """ & [Forms]![ชื่อฟอร์ม]![TxtFind] & "*""")
การทำงาน ถ้าที่ textbox ถ้าเราคีย์ กก ผลการทำงานคือนับถ้าข้อมูลมี กก* ครับ ถ้าข้อมูลมี กกข กกค กขค ผลนับจะเท่ากับ 2 แต่ถ้าพิมพ์ ค จะไม่เจอเพราะไม่ได้อยู่ด้านหน้าของข้อความครับ

คือด้านหลังของข้อความเป็นอะไรก็ได้ แต่จะนับถ้ามีด้านหน้าของข้อความไปเรื่อยๆครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan

69
ห้อง MS Access / : Ms Access *.accdb มีอะไรดีกว่า *.mdb
« เมื่อ: 25 เม.ย. 62 , 10:33:08 »
เริ่มใช้ foxbase   dbase  access 97 access 2003  ควรจะหันหลัง แล้วไปใช้ access ใหม่ๆดีไหม  ท่านที่มีประสบการณ์ขอคำแนะนำหน่อยครับ

ACCDB มีสิ่งที่เพิ่มเข้ามาเท่าที่รู้คือ

ACCDB
มีชนิดข้อมูล Multi-valued fields
มีชนิดข้อมูล Attachment
มีการนำไปใช้กับ SharePoint and Outlook
มีชนิดข้อมูลแบบ Calculated
เพิ่มความสามารถด้านการเข้ารหัสความปลอดภัย
รองรับการทำงานกับเวอร์ชั่นใหม่ๆ

MDB
ส่วน MDB ดีตรงใช้กับ พวก access version เก่าๆ พวก 2000 2003 2007 ได้ด้วยคับ
โพสต์นี้ได้รับคำขอบคุณจาก: ta y

70
คือเราอยากทำตัวหนังสือใน text box อยู่ข้างล่างบ้าง ตรงกลางบ้าง ค่ะ มันมีแต่ปุ่ม ชิดซ้าย ชิดขวา และกึ่งกลางแต่มันจะอยู่บนสุดตลอด  :cry: :cry: :cry:

กำหนด Topmargin เอาครับ ใส่ค่าตัวเลขยิ่งสูง ข้อความใน textbox ยิ่งลงมาต่ำครับเช่น การกำหนดแบบ เลือกตาม texbox ที่อยากกำหนดว่า แต่ละตัวกำหนดให้ข้อความอยู่ตรงไหน
โค๊ด: [Select]
Private Sub Form_Current()
Me.Textbox1.TopMargin = 100 'กำหนดตัวเลขได้ยิ่งสูงยิ่งต่ำ
End Sub

ถ้าอยากกำหนด textbox ทั้งหมดของฟอร์มกำหนดแบบนี้ครับ
โค๊ด: [Select]
Private Sub Form_Current()
Call SetMarginTextbox
End Sub
Sub SetMarginTextbox()
  Dim ctl As Control
    For Each ctl In Me.Controls
        If ctl.ControlType = acTextBox Then
            ctl.TopMargin = 100
        End If
    Next ctl
End Sub

หมายเหตุตรง
 If ctl.ControlType = acTextBox Then
สามารถกำหนดประเภทตัว control ที่ทำบ่อยๆ ได้ ดังนี้

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

71
ผมทำ report invoice โดยเชื่อมโยงจาก quiry และทุกครั้งต้องถามเลขที่บิล มีวิธีใดทางลัด ป้อนข้อมูลในฟอร์มขาย สั่งพิมพ์บิลได้เลย ขอคำแนะนำครับ
report invoice เชื่อมโยงจาก Query อยู่แล้วมี Field เก็บเลขที่บิลอยู่แล้ว
ก็ไปกำหนด Criteria ใน Query Field ที่เก็บเลขที่บิล
=Forms![ชื่อฟอร์ม]!txt_Bill
เท่านี้เวลาเปิดรายงานก็จะแสดงข้อมูลที่มีเลขที่บิลนั้นขึ้นมาคับ

เท่านี้เวลาเปิดรายงานเลขที่บิลจะปรากฎขึ้นมาทันทีครับ
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

72
Private Sub CmdFind_Click()
Dim strFindName As String
Dim intCount As Integer

If IsNull(Me.TxtFind) Or (Me.TxtFind) = "" Then
MsgBox "ใส่ข้อมูลไม่ครบ โปรดตรวจสอบ"
Me.TxtFind.SetFocus
Else
strFindName = "SELECT * FROM [บุคคลากร] WHERE [ชื่อ-นามสกุล] LIKE '" & TxtFind & "*';"
Me.RecordSource = strFindName

intCount = DCount("*", "บุคคลากร", "[ชื่อ-นามสกุล] = '" & [Forms]![ชื่อฟอร์ม]![TxtFind] & "'")

If intCount > 1 Then
MsgBox "พบ " & intCount & " เรคคอร์ด", vbInformation, "ค้นหาRecord"

ElseIf intCount = 0 Then
MsgBox "ไม่พบข้อมูล", vbCritical, "ค้นหาRecord"
End If

Me.Requery
Me.TxtFind.SetFocus
Me.TxtFind = Null
End If
End Sub

ลองดูครับ ตรงชื่อฟอร์มที่ผมใส่สีแดง ใส่ชื่อฟอร์มเข้าไปด้วยนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thaworn Panchan, Pongsak

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