แสดงกระทู้

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 - Kxess

หน้า: [1] 2 3 4 5
1
ลองไปดูในไฟล์ front-end ที่แยกมาครับว่า ลิ้งไปที่ไหน

โดยคลิกที่ External data > Linked table manager



จากนั้นจะแสดงหน้าต่างด้านล่าง



ให้ดูว่าที่อยู่ของไฟล์  back-end ตารางฐานข้อมูลอยู่ที่ไหน ก็ให้เอาไฟล์ไปวางไว้ตรงนั้น ในเครื่องใหม่
เช่น D:\database\back-end.accdb ที่เครื่องใหม่ ก็ต้องเอามาไว้ตรงนี้เหมือนกัน

--------
หรืออีกวิธีก็คือ สร้างลิ้งใหม่เลย โดยการลบตารางเก่าออก (*ต้องเป็นตารางที่ link table มานะ โดยมันจะมีลูกศรชี้ไปทางขวาเล็ก ๆ ที่รูปตารางแบบนี้ ) ถ้าลบตารางปกติ ข้อมูลหาย !!!


เมื่อลบแล้วให้ไปที่ External Data > New Data Source > From File > Access (กณีที่เราใช้จากไฟล์ access)



เลือกที่อยู่ของไฟล์ฐานข้อมูล back-end แล้วเลือกตัวเลือกด้านล่าง (Link to the database ...)



จะแสดงหน้าต่างให้เลือกตารางที่ต้องการ คลิกเลือก หรือเลือกทั้งหมดก็แล้วแต่ จากนั้นกด ok เป็นอันเรียบร้อย

2
บันทึก เปิดใหม่ ใช้ไม่ได้แล้วครับ
แต่ถ้าเปิดใหม่มาแล้วสร้าง combo box ใหม่ จะใช้ได้ครับ ทำวนไป

แต่สังเกตว่าเวลาเราพิมพ์ข้อความลงไปแม้ว่าจะพิมพ์ถูกต้องครบทุกตัวอักษร แต่มันก็แจ้งว่าข้อความที่พิมพ์ไม่ตรงถูก ต้องเลือกเท่านั้น
งงจริงครับ -..-




3
สาเหตุ ไม่ทราบจริง ๆ

ผมลองโหลดไฟล์มาดู และลองพิมพ์ดูมันก็ไม่ขึ้นเหมือนที่ จขกท เป็นครับ
ผมเลยสร้างฟอร์มใหม่ และสร้างคอมโบบ๊อกใหม่ โดยใช้ row source เดิม ปรากฎว่าดูได้ครับ และส่งผลให้ฟอร์มหลัก manCustomer ดูได้ไปด้วยทั้งหมด

งงสิครับ 555

รอท่านอื่นครับ ผมอยากรู้เหมือนกัน



หลังจากสร้างฟอร์มแล้วก็มาดูที่ฟอร์มหลัก ใช้ได้เฉย แต่พอผมบักทึกแล้วปิด เปิดมาใหม่ ก็จะใช้ไม่ได้ครับ







4
ชนิดของข้อมูลเป็น short text รึป่าวครับ

ถ้าเป็นชนิดอื่นที่ยาว ๆ มันจะใช้ไม่ได้

5
จริงด้วยครับ
ลองไปใช้ดู เพิ่มข้อมูลได้ถูกต้อง เรียบร้อยครับ
ปกติไม่ค่อยใช้ความสามารถนี้เลย เขียนแต่ query ตลอด 555
ขอบคุณมากครับ


6



ผมมี 2 ตารางที่มันไม่ลิ้งกันด้วย ID คราวนี้ผมจะทำให้มันลิ้งกัน

คอลัมน์ที่เหมือนกันคือ Product_Name กับ POD_Note

ผมต้องการเอา Product_ID ไปใส่ใน POD_Product_ID

สามารถทำอย่างไรได้บ้างครับ เขียนเป็นคิวรี่ก็ได้ครับ

ขอบคุณครับ





7
ขอบคุณทุกท่านครับ

ตอนนี้ผมแก้จนได้ผลตามที่ต้องการแล้วครับ

บางทีก็อธิบายคำถามหรือสิ่งที่ต้องการยากครับ ฮ่าๆ

คือฟังก์ชั่นในการบันทึกเลข Serial ลงในรายการของบิลครับ โดยข้อมูลใน OrderDetail เมื่อเปิดบิลก็จะเพิ่มข้อมูลใน BillDetail จากนั้นจะมีการใส่เลข Serial ลงไปในรายการของบิลด้วยครับ

โค๊ด: [Select]

Private Sub InsertSerialtoBillDetail(CurrentOrderID As Long, NewBill_ID As String)

Set rsOrder_Details = CurrentDb.OpenRecordset("SELECT * FROM Order_Details WHERE Order_ID = " & CurrentOrderID, dbOpenSnapshot)
Set rsBill_Details = CurrentDb.OpenRecordset("Bill_Details", dbOpenDynaset, dbAppendOnly)
   
 
    Do While rsOrder_Details.EOF = False
        With rsBill_Details
                .AddNew
                For Each fld In rsOrder_Details.Fields
                        Select Case fld.Name
                                Case "Order_ID"
                                    rsBill_Details("Bill_ID").Value = NewBill_ID
               
                                Case "Product_ID"
                                    rsBill_Details("Product_ID").Value = fld.Value
                                    ProID = fld.Value
                                    getPSerial = Nz(DLookup("P_RunSerial", "Products", "Product_ID=" & ProID), "")

                                Case "OD_Quantity"
                                    rsBill_Details("BD_Quantity").Value = fld.Value
                                    PQuantity = fld.Value
           
                                Case "OD_Unit_Price"
                                    rsBill_Details("BD_Unit_Price").Value = fld.Value

                                'BD_Serials
                                Case Else
                                   
                                 'เรียกฟังก์ชั่นในการรันซีเรียล
                                 txtLastSerial = RunSerialTube(getPSerial, PQuantity)
                                 CurrentDb.Execute "UPDATE Products SET P_RunSerial ='" & txtLastSerial & "' WHERE [Product_ID]= " & ProID, dbSeeChanges

                        End Select
                        Next
                    .Update
            End With
            rsOrder_Details.MoveNext
    Loop

   rsOrder_Details.Close
   rsBill_Details.Close
  Set rsBill_Details = Nothing
  Set rsOrder_Details = Nothing



มีผิดแปลกตรงไหนแนะนำได้ครับ
ขอบคุณครับ

8
อ้าว ลบข้อมูลออกทำไมอะครับ เผื่อจะมีประโยชน์กับคนอื่นในอนาคต

ยังแสดงผลไม่ถูกต้องตามต้องการครับ อาจจะทำให้คนเข้าใจผิด
ถ้าแก้ไขแล้ว ผมจะเพิ่มให้แน่นอนครับ

9
ทำได้แล้วครับ : D

10

มีเรื่องรบกวนครับ
อยากให้ช่วยแนะนำการเขียน vba โดยใช้ DAO ครับ
การทำงานคือ ผมจะทำการก๊อปปี้ข้อมูลใน OrderDetail ไปยัง BillDetail

เดิมที่ผมใช้คำสั่ง CurrentDb.Execute "INSERT INTO BillDetail(B2,B3,B4) SELECT (O2,O3,O4) FROM OrderDetail WHERE Order_ID=" & CurrentID
ใช้งานได้ปกติไม่มีปัญหาอะไรครับ

แต่ตอนนี้ผมต้องการเพิ่มข้อมูลเลข Serial ลงใน BillDetail ซึ่งแตกต่างกันในแต่ละระเบียน

ผมเลยต้องใช้ DAO ผมขอเขียนคร่าว ๆ แบบไม่ถูก syntax


rsBill(B1) = "เลขที่ที่กำหนดขึ้นใหม่"
rsBill(B2) = rsOrder(O2)
rsBill(B3) = rsOrder(O3)
rsBill(B4) = rsOrder(O4)
rsBill(B5) = "เลขซีเรี่ยลที่กำหนดขึ้น"
Next ..

ผมจะเขียนเป็นโปรแกรมได้ยังไงครับ
ขอบคุณครับ

สวัสดีวันปีใหม่จีน
ขอให้มีความสุข เฮ็ง ๆ รวย ๆ สุขภาพแข็งแรงกันถ้วนหน้า


11
ใช้งานได้ครับอย่างดีครับ ขอบคุณมากครับ

ตอนแรก error ติดอยู่นาน ที่ไหนได้ ประเภทข้อมูลไม่ตรงกัน อีกอัน short text อีกกัน memo

12
ใช่ครับ

ตาราง rejected_email คือเมลที่ตีกลับ

เอามาเทียบกับ email ในตาราง personal

แล้วลบข้อมูลในช่อง email ในตาราง personal

ตัวอย่างในภาพ ผมอาจจะใช้คิวรี่ผิด คือผม join ด้วย email แต่มันก็จะลบ email ไม่ได้

ขอบคุณครับ

13



ผมมี 2 ตาราง
1. ตารางรายชื่อลูกค้าและ email
2. ตาราง email ที่ถูกตีกลับ

ผมอยากจะลบ email ของลูกค้าที่ตีกลับ ลบเฉพาะข้อมูล email ไม่ลบระเบียนครับ
ผมควรจะเขียนคิวรี่อย่างไรดีครับ
ขอบคุณครับ

14
ผมลองมาหลายวิธีแล้ว ทั้งเก็บในคลาวด์ต่าง ๆ ทั้ง sql server / google sql / mysql
วิธีเอาไว้ในพื้นที่คลาวด์ไม่แนะนำเพราะช้า ยิ่งฐานข้อมูลใหญ่ขึ้น ยิ่งช้า เสี่ยงเกิดข้อผิดพลาดของข้อมูล

แนะนำแบบเม้นบนครับ
ถ้าใช้แบบออฟไลน์ วางไว้ที่เครื่องเซิฟเวอร์แล้วใช้งานแบบแชร์ไฟล์

ถ้าใช้แบบออนไลน์สำหรับ work from home ผมใช้ odbc+mysql ฐานข้อมูลบนเว็บไซต์ วิธีนี้ทำงานเร็วใกล้เคียงกับแบบออฟไลน์
ข้อแนะนำ
- เลือกโฮสดี ๆ ถ้าล่มบ่อยก็จะมีปัญหา
- ต้องปรับปรุงโค้ดนิดหน่อย

15
ไม่ได้เหมือนเดิมครับ

error 3146
ODBC--call failed


แต่ใช้เป็นแบบเต็ม ๆ แทนใช้ได้ครับ ขอบคุณครับ

INSERT INTO table1 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

16
ผมจะทำการคัดลอกข้อมูลลูกค้าทั้งหมดครับ

คำสั่ง
CurrentDb.Execute "INSERT INTO Customers SELECT * FROM Customers WHERE Customer_ID = " & FromCustomerID & ";"

แต่มันไม่ทำงาน ไม่แน่ใจว่าต้องใช้คำสั่งไหนครับ รบกวนด้วยครับ

ปล. จำเป็นต้อง vba

หน้า: [1] 2 3 4 5