แสดงกระทู้

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

หน้า: [1]
1
สอบถามการอัพโหลดไฟล์ Excel ใน MS Access ค่ะ อยากจะ อัพโหลดไฟล์ ได้โดยให้มีการตรวจสอบจากเลขที่บัตรประชาชน โดยเช็คว่า ถ้ามีข้อมูลที่เคยอัพโหลดอยู่แล้ว ให้อัพโหลดเฉพาะข้อมูลที่มีการเปลี่ยนแปลง ข้อมูลไหนไม่มีก็อัพโหลดเข้าตามปรกติ รบกวนแนะนำด้วยนะคะ ขอบคุณค่ะ

ถ้าทำแบบง่ายก็คือ
1.ให้นำเข้าข้อมูลตามบัตรประชาชนทั้งหมดเข้ามาก่อนไปยังตารางสำรอง สมมุติชื่อว่า TempImport นะครับ
2.ใช้การสร้างคิวรี่ โดยกำหนดให้เลือกเอาเฉพาะ รหัสที่ไม่มีในตารางหลัก สมมุติชื่อว่า tblDataMain นะครับ
3.มี Field เก็บเลขบัตรประชาชนชื่อเดียวกันคือ PersonalID


ผมสมมุติมีปุ่มที่ใช้สำหรับนำเข้า 1 ปุ่ม และให้แก้ไขชื่อตารางทั้งสองตามสีแดงที่ผมใส่ไว้ให้ตรงด้วยนะครับ

Private Sub Command0_Click()
'ตัวอย่างโค้ดการนำเข้าข้อมูลโดยมี Dialog ให้เลือกไฟล์เข้ามา
Dim dlg As FileDialog
Dim sql, Deletesql As String
Dim DB As DAO.Database
Set DB = CurrentDb
If MsgBox("คุณต้องการนำเข้าข้อมูลใหม่หรือไม่", vbQuestion + vbYesNo, "ระบบสอบถาม") = vbYes Then

Set dlg = Application.FileDialog(msoFileDialogFilePicker)

With dlg
.Title = "Select the Excel file to import"
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Excel Files", "*.xls*", 1
.Filters.Add "All Files", "*.*", 2

If .Show = -1 Then
StrFileName = .SelectedItems(1)

Deletesql = "DELETE * FROM TempImport;" 'สั่งให้ลบข้อมูลของตารางสำรองให้หมดก่อนเพื่อรอรับข้อมูลนำเข้าใหม่ที่จะเข้ามา
DB.Execute Deletesql

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "TempImport", StrFileName, True 'นำเข้าไปยังตารางชื่อ TempImport
Else
Exit Sub
End If
End With

'หลังจากนำเข้ามาเสร็จให้ทำการ Append ข้อมูลที่ รหัสประจำตัวประชาชนไม่ซ้ำกัน ไปยังตารางหลักของเรา
sql = "INSERT INTO tblDataMain SELECT * FROM TempImport WHERE (((TempImport.PersonalID) Not In (select [PersonalID] from [tblDataMain])));"
DB.Execute sql
If DB.RecordsAffected <= 0 Then
   MsgBox "ไม่มีข้อมูลที่นำเข้า."
Else
MsgBox "นำเข้าจำนวน " & DB.RecordsAffected & " เรคคอร์ด", vbInformation, "Myprogram"
End If
Set DB = Nothing
End If
End Sub

ใช้แค่ Table เดียวได้ไหมคะ ในการอัพโหลด ต้องการอัพโหลดข้อมูลเช่น เลขที่บัตรประชาชน ข้อมูลการเปลี่ยนแปลง ประมาณนี้นะคะ ยกตัวอย่าง นาย ก เลขบัตรประชาชน 1234567890123 ข้อมูลเก่า  กกกก อัพเดตใหม่เป็น กก77 ประมาณนี้นะคะ ถ้าเลขบัตรประชาชนไหนที่ไม่เคยมีการบันทึกก็ให้บันทึกเข้าไปเลย แต่ในกรณีเคยมีให้อัพเดตเฉพาะข้อมูลที่มีการแก้ไข รบกวนแนะนำด้วยนะคะ ขอบคุณค่ะ
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

2
แก้ไขปัญหาได้แล้วค่ะ แก้โดย Query คำสั่งใน SQL
โพสต์นี้ได้รับคำขอบคุณจาก: mon

3
Print Preview ข้อความที่สร้างด้วย Lable ไม่แสดง ใน MS Access 2016
รบกวนแนะนำด้วยค่ะ

หน้า Design


หน้า Print Preview
ไม่แสดงข้อความที่เขียนใน Lable ส่วนข้อมูลที่ดึงมาจาก Database แสดงปรกติ
โพสต์นี้ได้รับคำขอบคุณจาก: mon

4
ห้อง MS Access / ทำบัตรพนักงานใน MS Access
« เมื่อ: 14 ก.ค. 63 , 16:27:29 »
เขียนโปรแกรมใน MS Access 2013
ทำบัตรพนักงานค่ะ ทำใน MS Access 2013 Preview ตัวอย่างได้ 1 บัตรตามนี้





พอเปลี่ยนไปใช้ใน MS Access 2016 ไม่ได้ตั้งค่าอะไร แต่ Preview กลายเป็นแสดง 3 คนต่อ 1 หน้ากระดาษ และขนาดของหน้ากระดาษจากนิ้วเป็น cm ตามรูปนี้





รบกวนแนะนำด้วยค่ะ มีวิธีใช้ใน Access 2016 ให้แสดงเป็นแบบใน Access 2013 ยังไง คือต้องการให้แสดงบัตรพนักงาน 1 ต่อ 1 เลยค่ะ ต้องไปตั้งค่าตรงไหนใน 2016


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

5
คงต้องรีโมทไปดูหน่อยแล้วครับ
Anydesk ไปเช็คได้ไหม
 :sweat: :sweat:

ทำได้แล้วค่ะ พอดี Export Database type ที่อยู่ใน MS Access ไปเป็น SQL Server type เปลี่ยนไปหมดค่ะ ลองไปนั่งตรวจสอบและแก้ไข type ตอนนี้ล็อกอินมาแล้วได้ตามที่ต้องการแล้วค่ะ ขอบคุณมากๆนะคะ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

6
ห้อง MS Access / : การสร้างหน้า Login ใน MS Access
« เมื่อ: 16 เม.ย. 63 , 14:23:39 »


อย่าลืมไปแก้ datatype ให้เป็น number ด้วยนะ

ถ้าเป็นข้อมูลใน Sql server ตั้งเป็น varchar แล้ว แก้ไขไม่ได้ค่ะ
โพสต์นี้ได้รับคำขอบคุณจาก: Naphatsadon Jangusksorn

หน้า: [1]