แสดงกระทู้

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 ... 9 10 11 [12] 13 14 15 ... 46
199
ห้อง MS Access / : รบกวนสอบถามครับ
« เมื่อ: 15 มี.ค. 64 , 14:58:56 »
แค่เปลี่ยนชื่อฟิลล์ก็ได้แล้วครับ

Private Sub CmdRun_Click()
Dim SQL As String
SQL = "SELECT [Bacode], [Description], [UnitPrice], [Date] INTO 123 FROM ABC;"
DoCmd.SetWarnings False
DoCmd.RunSQL SQL
DoCmd.SetWarnings True
End Sub

200
ลองดูครับ
อุตส่าห์อธิบายโจทย์ขนาดนี้พยายามทำให้ละกัน  :cool:

201
ห้อง MS Access / : transection table สอบถามค่ะ
« เมื่อ: 11 มี.ค. 64 , 10:19:48 »
ขอเสนอรูปแบบหนึ่งแบบนี้เผื่อเป็นตัวเลือกนะครับ
ก็คือ มีตาราง PriceHistory
มีฟิลล์
1.รหัสสินค้า
2.ราคาที่เสนอ
3.วันที่ระบุราคาใหม่ (เป็นแบบ date&time) กำหนด default Value = Now()
   เพื่อต้องการเก็บวันที่และเวลาในการระบุราคาเข้าไปด้วยเพื่อใช้ในการติดตามการเปลี่ยนแปลงของราคา
   เพื่อใช้ในการจัดเรียงตามวันที่และเวลา

โดยราคาจะแยกหมวดหมู่ตามรหัสสินค้าที่มีครับ

วิธีการทำงานก็คือ เมื่อมีการระบุราคาที่เสนอ  ใน order detail แล้ว ให้สั่ง Append รหัสสินค้า / ราคาที่เสนอ
ลงไปในตาราง PriceHistory ไว้ด้วย

202
ห้อง MS Access / : รบกวนสอบถามครับ
« เมื่อ: 11 มี.ค. 64 , 10:08:59 »
ใช้เครื่องหมาย [ และ ] ปิดหัวและท้ายครับ

Private Sub CmdRun_Click()
Dim SQL As String
SQL = "SELECT [Cmd Code], [Cmd Title], [Cmd Price], [Cmd Date] INTO 123 FROM ABC;"
DoCmd.SetWarnings False
DoCmd.RunSQL SQL
DoCmd.SetWarnings True
End Sub

203
ห้อง MS Access / : รบกวนสอบถามครับ
« เมื่อ: 10 มี.ค. 64 , 14:57:49 »
ผมมีตารางชื่อ ABC ดังนี้คับ
CmdCode     CmdTitle    CmdPrice    CmdSupName   CmdDate
11111111    AAAAAA         50          AAAAAAAAA    1/1/2021
22222222    BBBBBB       150          BBBBBBBBB    2/1/2021
33333333    CCCCCC         95          CCCCCCCCC    3/1/2021

ที่หน้าฟอร์ม ผมสร้างปุ่มชื่อ CmdRun
ผมจะใช้คำสั่ง Copy ตาราง ABC อย่างไรคับ
ให้เป็นตารางชื่อ 123 โดยเอาเฉพาะคอลัมภ์ CmdCode , CmdTitle , CmdPrice , CmdDate
รวมทั้งข้อมูลด้วยครับ รบกวนด้วยครับ
ขอบคุณมากครับ

ใช้ MakeTable Query ครับ
มันสามารถกำหนด ชื่อตารางที่จะสร้างได้ และ Field ที่ต้องการนำไปใช้ก็กำหนดเอาได้เลย

ตัวอย่าง
โค๊ด: [Select]
Private Sub CmdRun_Click()
Dim SQL As String
SQL = "SELECT CmdCode, CmdTitle, CmdPrice, CmdDate INTO 123 FROM ABC;"
DoCmd.SetWarnings False
DoCmd.RunSQL SQL
DoCmd.SetWarnings True
End Sub

204
แก้เป็นแบบนี้ครับ ในส่วนของ Import()

โค๊ด: [Select]
Sub Import()
    Dim strPath As String
    Dim strFile As String
    Dim strTable As String
    Dim StrFileName As String
    Dim strextensionNew As String
   
    strTable = "Table1"
    strPath = "D:\textfile\"
    strFile = Dir(strPath & "*.txt")
   
    Do While strFile <> ""
    StrFileName = strPath & strFile
    DoCmd.TransferText acImportDelim, "", strTable, StrFileName, False
    strextensionNew = Left(StrFileName, InStrRev(StrFileName, ".") - 1) & ".xxx"
   
    If Len(Dir$(strextensionNew)) > 0 Then
                Kill strextensionNew
    End If
    Name StrFileName As strextensionNew

    strFile = Dir(strPath & "*.txt")
    Loop
End Sub

205
อ้างถึง
อยากทราบอีกอย่างครับ
- หากจะต้องการใส่รูป ของนายA นายB หลังจากเลือกใน combobox แล้วให้โชว์ขึ้นมาเลย สามารถทำโดยใช้ข้อมูล txt ในตารางแล้วcopy ที่อยู่ไฟล์มา + ใส่control ก็จะได้เลยใช่มั้ยครับ (เคยลองทำแบบนี้แล้วมันไม่ขึ้นมาให้)


เช็ค path ว่าที่กำหนดนั้นสมบูรณ์หรือไม่ก่อนครับ
เพราะการกำหนด path จะต้องมีตำแหน่ง path  / ชื่อไฟล์รูป  / และนามสกุลไฟล์ด้วย

206
จากตัวอย่างลองเปิด form frmExpBooking ขึ้นมา
จะแสดง Jobno และรายละเอียดคร่าวๆ ของ Jobno นั้น

เวลาจะเข้าไประบุ truckNo ให้ดับเบิ้ลคลิกที่ เรคคอร์ดที่ต้องการ จะเข้าไปสู่หน้าของการระบุ truckno และรายละเอียดต่างๆครับ

ดูจากงานของท่านแล้ว ต้องศึกษาการทำ Normalization ก่อนเป็นอันดับแรกเลย
เพราะท่านรวบรวมข้อมูลต่างๆ ไว้ด้วยกันทั้งหมด ผมว่าไม่เวิคครับ

ลองดูจากตัวอย่างนี้ไปเป็นแนวทางในการปรับในส่วนอื่นๆก็ได้ครับ

207
อ้างถึง
ค้าอยากให้เพิ่ม PO Truck Number เป็นโมดูลใหม่เพื่อออกบิลให้ Supplier
วิธีในการออก PO Truck Number มีขั้นตอนการออกอย่างไร

อ้างถึง
ใครมีไอเดียที่สามารถใส่ เลขทะเบียนรถ ได้มากกว่า 1 คัน โดยไม่ต้องทำ Table แยกเป็น Truck 1/ Truck 2........ บ้างครับ
ไม่ต้องแยก Truck1 / Truck2
หรอกครับ
แต่ในตารางก็จะต้องมี
ตาราง Jobno ตารางนี้สร้างขึ้นมาไว้กำหนดรายละเอียดของ Job เช่น
JobNo
CustomerName
Tel
ฯลฯ

ส่วนตารางใหม่ที่น่าจะทำ
JobNo ไว้กำหนด RelationShip
TruckNumber ไว้กำหนดลำดับ Truck จะทำให้ Auto ก็ได้ หรือระบุเองก็ได้
TruckID  ฟิลล์นี้เก็บทะเบียนรถ

คุณสมบัติตารางเป็นแบบ Many
Jobno ต้องซ้ำได้

ข้อดีคือ ใน 1 Jobno มีรถกี่ค้นก็ได้เป็น 100 คันก็ได้ เพราะข้อมูลกำหนดเป็น Row ไม่ใช้ Column แบบที่คุณทำ


208
ที่ Cell A3 ใส่ IF เข้าไป
เช่น

=IF(A1>A2,"กำไร",IF(A1<A2,"ขาดทุน"))

แต่ฝากให้คิดเพิ่มนะครับ กรณี A1 และ A2 เท่ากันจะให้แสดงว่าอะไร  :miao:
สมมุติว่ามีก็จะใส่แบบนี้ได้เลย

=IF(A1>A2,"กำไร",IF(A1<A2,"ขาดทุน",IF(A1=A2,"เสมอตัว")))

209
ถ้าทุกๆตาราง มีฟิลล์ใน  textbox1a , textbox2a , textbox3a เหมือนกัน
ใช้แบบนี้ได้เลย

โค๊ด: [Select]
If Not IsNull(Me.comboboxSelectTable) Then
Forms("form1a").Form.RecordSource = Me.comboboxSelectTable
End If

210
ห้อง MS Access / : สอบถามการเขียนครับ
« เมื่อ: 08 มี.ค. 64 , 15:28:44 »
โค๊ด: [Select]
IF IsNull(CmbG) Then
Me.CmbG.SetFocus
Msgbox "CMBG ว่าง!!!"
Else
IF Not IsNull(Me.JobNo) Then
Msgbox "มีการกำหนด JobNo ไว้แล้ว"
Exit Sub
else
Me.JobNo = AutotxtID
End if
End if

แก้เฉพาะปุ่ม CommandBotton นะครับ

211
จากForm ในไฟล์ที่แนบไว้ครับ
ผมต้องการทำให้ เวลากดเลือก combo box อันแรก แล้ว combo box อันต่อไป ขึ้นมาให้เลือกตามเงื่อนไขที่เลือกไว้ใน combo box อันแรก ต้องเขียนคำสั่ง หรือต้องทำยังไงได้บ้างครับ

เช่น นายA และนายB อยู่ใน section 1 เมื่อผมเลือก section 1 ในฟอร์ม แล้วต้องการให้ customer-nm ขึ้นมาให้เลือกแค่ นายA หรือนายB ครับ (ไม่ให้ขึ้น นายC นายD นายE นายF เพราะอยู่คนละ section)

รบกวนผู้รู้หน่อยนะครับ ขอบคุณครับ

เวลาตั้งชื่อ control พยายามอย่าให้ใส่คำเฉพาะที่มีในโปรแกรม ให้ใส่ชื่อย่อของแต่ละประเภท Control 
คำว่า section เป็นชื่อส่วนหนึ่งของคำสั่ง
ถ้าเป็น combobox ก็ให้ใส่ Cb_Section หรือ cboSection เข้าไปเพื่อให้ไม่เหมือนกับคำสั่งในระบบครับ

ส่วนการที่จะให้รายการ ของคอมโบที่สองเปลี่ยนตามอันแรกก็ให้กำหนด Rowsource กำหนด Criteria ฟิลล์ที่เลือกในคอมโบ Criteria ด้วย

212
สามารถใช้ SourceObject ในการกำหนดให้ตารางต่างๆ มาแสดง
โดยจะมีฟอร์มหลักที่มี combobox หรือ Control อื่นๆ ไว้ในการเลือกชื่อตารางมาแสดง

โค้ดที่ปุ่ม Commandbotton เช่น

If Not IsNull(Me.comboboxSelectTable) Then
Forms("frmmain").Form.MySubFrm.SourceObject = "table." & Me.comboboxSelectTable
End If


213
ใส่ =[CurrentRecord] ในลงไป ControlSource ได้เลย

หรือ Event Form Current
ใส่
Private Sub Form_Current()
Me.Text10 = CurrentRecord
End Sub

214
จริงด้วยเพิ่งสังเกตุเหมือนกันครับ
คราวนี้เจ้าของกระทู้คงสามารถทำได้เองแล้วนะครับ  :cool:
ถ้าถามใหม่ขอโจทย์ใหม่ๆ นะครับ

โจทย์นี้สอบผ่านได้แล้วนะ หยอกๆ  :shout: :shout: :XD:

215
ข้อที่ 1
โค๊ด: [Select]
SELECT [แฟ้มข้อมูลรายการอาหาร].[รหัสอาหาร], [แฟ้มข้อมูลรายการอาหาร].[ชื่อ]
FROM แฟ้มข้อมูลรายการอาหาร LEFT JOIN แฟ้มข้อมูลการสั่งอาหาร ON [แฟ้มข้อมูลรายการอาหาร].[รหัสอาหาร] = [แฟ้มข้อมูลการสั่งอาหาร].[รหัสอาหาร] WHERE ((([แฟ้มข้อมูลการสั่งอาหาร].[รหัสอาหาร]) Is Null));

ข้อที่ 2
โค๊ด: [Select]
SELECT TOP 1 [แฟ้มข้อมูลการสั่งอาหาร].[รหัสอาหาร], [แฟ้มข้อมูลรายการอาหาร].[ชื่อ]
FROM แฟ้มข้อมูลรายการอาหาร INNER JOIN แฟ้มข้อมูลการสั่งอาหาร ON [แฟ้มข้อมูลรายการอาหาร].[รหัสอาหาร] = [แฟ้มข้อมูลการสั่งอาหาร].[รหัสอาหาร] GROUP BY [แฟ้มข้อมูลการสั่งอาหาร].[รหัสอาหาร], [แฟ้มข้อมูลรายการอาหาร].[ชื่อ]
ORDER BY Sum([แฟ้มข้อมูลการสั่งอาหาร].[จำนวนที่สั่ง]) DESC;

216
ห้อง MS Access / : สอบถามผู้รู้ด้วยครับ
« เมื่อ: 02 มี.ค. 64 , 14:18:00 »
ผมมีคำถามอยู่ 2ข้อครับ ทำในคิวรี่ครับ รบกวนช่วยแนะด้วยครับ
1.อยากให้แสดงฟิลด์ รหัสอาหาร,ชื่อ, อาหารทีไม่มีการสั่งซื้อ
2.อยากให้แสดงฟิลด์ รหัสอาหาร,ชื่อ, อาหารที่มีการสั่งซื้อมากที่สุด

ข้อที่ 1
โค๊ด: [Select]
SELECT Product.ProductID, Product.ProductName FROM Product
WHERE (((Product.ProductID) Not In (select ProductID from [SaleDetail])));
อาหารทีไม่มีการสั่งซื้อ(คือไม่มีการสั่งซื้อในตาราง Saledetail จะถูกนำมาแสดง)

ข้อ 1 ที่แนะนำ ถ้านำไปใช้สอบ น่าจะใช้แบบนี้
โค๊ด: [Select]
SELECT Product.ProductID, Product.ProductName
FROM Product LEFT JOIN SaleDetail ON Product.ProductID = SaleDetail.ProductID
WHERE (((SaleDetail.ProductID) Is Null));
เป็นการ Join table และหาค่า Null ของอีกตาราง

ข้อที่ 2
โค๊ด: [Select]
SELECT TOP 1 SaleDetail.ProductID, Product.ProductName
FROM Product INNER JOIN SaleDetail ON Product.ProductID = SaleDetail.ProductID
GROUP BY SaleDetail.ProductID, Product.ProductName
ORDER BY Sum(SaleDetail.Quant) DESC;

ใช้ Sum() ในการหาผลรวมของจำนวนที่สั่งซื้อ
และใช้การเรียงลำดับจากมากไปหาน้อย ORDER BY Sum(SaleDetail.Quant) DESC
้ใช้การกำหนด TOP 1 เพื่อแสดงค่าที่สูงที่สุดเพียง 1 เดียว

หน้า: 1 ... 9 10 11 [12] 13 14 15 ... 46