แสดงกระทู้

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

หน้า: [1] 2
1
code คุณ TTT ใช้ได้เลยครับ

Private Sub Command1_Click()
Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Set db = CurrentDb
    Set tdf = db.CreateTableDef("department")
   
    tdf.Connect = "ODBC;DRIVER={MySQL ODBC 3.51 Driver};Server=192.168.0.243;Database=dental_stock;UID=sa;PWD=sa1234;Option=3"
    tdf.SourceTableName = "department"
    db.TableDefs.Delete "department"
    db.TableDefs.Append tdf

    Set tdf = db.CreateTableDef("vendor")
   
    tdf.Connect = "ODBC;DRIVER={MySQL ODBC 3.51 Driver};Server=192.168.0.243;Database=dental_stock;UID=sa;PWD=sa1234;Option=3"
    tdf.SourceTableName = "vendor"
    db.TableDefs.Delete "vendor"
    db.TableDefs.Append tdf

    db.Close: Set db = Nothing
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Max

2
ตัวอย่างที่ผมเคยทำและเก็บไว้นะครับ แต่ผมใช้กับ SQL SERVER ไม่เคยลองกับ MySQL นะครับ

- ต้องการลิ้งค์ตารางชื่อ Table1 จาก SQL Server เข้ามายัง MS Access 
- ข้อมูล SQL SERVER
--------------------------
Server Name  : ASPIRE-ONE
Database Name: Demo
Login        : sa
Password     : Abc!23
--------------------------
 
<DAO>
'----------------Code Start----------------
Sub LinkSQL_DAO()
    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Set db = CurrentDb
    Set tdf = db.CreateTableDef("dbo_Table1") 'ชื่อตารางที่ลิ้งค์เข้ามาใหม่
    tdf.Connect = "ODBC;Driver=SQL SERVER;SERVER=ASPIRE-ONE;UID=sa;PWD=Abc!23;Database=Demo;"
    tdf.SourceTableName = "Table1" 'ชื่อตารางเป้าหมายที่เครื่อง SQL Server
    db.TableDefs.Append tdf
'-------- หากต้องการลิ้งค์เพิ่มอีกตาราง  -------------------- 
'    Set tdf = db.CreateTableDef("dbo_Table2")
'    tdf.Connect = "ODBC;Driver=SQL SERVER;SERVER=ASPIRE-ONE;UID=sa;PWD=Abc!23;Database=Demo;"
'    tdf.SourceTableName = "Table_2"
'    db.TableDefs.Append tdf
'--------------------------------------------------
'-------- หากต้องการลบลิ้งค์ตาราง  --------------------
'    db.TableDefs.Delete "dbo_Table1"
'--------------------------------------------------
    db.Close: Set db = Nothing
End Sub
'-----------------Code End-----------------
 
* หมายเหตุ: คำสั่งนี้จะไม่สามารถเซฟรหัสผ่านได้ ทุกครั้งที่เปิดไฟล์ฐานข้อมูล MS Access ใหม่แล้วเรียกลิ้งค์ตารางที่สร้างจะต้องใส่รหัสผ่านใหม่ในครั้งแรกเสมอ จึงเหมาะกับการใช้งานชั่วคราว หรืออาจต้องใช้คำสั่งลบลิ้งค์ตารางแล้วสร้างใหม่ทุกครั้งเมื่อเปิดไฟล์แทน
โพสต์นี้ได้รับคำขอบคุณจาก: Max

3
รายงานการต่ออายุโดเมนเป็นที่เรียบร้อยครับ :yuush:

เวลามันช่างผ่านไปไวยิ่งนัก :zzz:
โพสต์นี้ได้รับคำขอบคุณจาก: Max

4
เหมือนเคยตอบไปนานแล้ว ไม่รู้ว่าแนวเดียวกันหรือเปล่านะครับ ลองดูกระทู้นี้ครับ
https://www.thai-access.com/index.php?topic=344.0
โพสต์นี้ได้รับคำขอบคุณจาก: Max

5
ตามลิงก์นี้นะครับ

เข้าใจว่าเค้ามีตอบเอาไว้แล้ว

https://pantip.com/topic/33848161
โพสต์นี้ได้รับคำขอบคุณจาก: Max

6
ลองดูความเห็นนี้ครับ
https://www.thai-access.com/yeadram_view.php?topic_id=5120
โพสต์นี้ได้รับคำขอบคุณจาก: Max

7
ผมแปะลิงค์ช่องยูทูปของอาจารย์ TTT ใว้ใน กล่องข่าวด้านบน กับ แหล่งความรู้ & ประชาสัมพันธ์ ด้านล่างกดตามเข้าไปดูกันได้เลยครับผม :yuush:

หรือกดลิงค์จากที่นี่เลยก็ได้ครับ ->> ช่องยูทูปเรียนรู้การพัฒนาซอฟแวร์ฐานข้อมูล MS Access ด้วยตัวเอง By อ.TTT(Access-Creator)
โพสต์นี้ได้รับคำขอบคุณจาก: Max

8
เรื่อง Attachment และ OLE Object ใน Access นี่เป็นเรื่องที่ส่งผลร้ายให้ฐานข้อมูลมากกว่าความสะดวกนะครับ แนะนำว่าใช้การระบุชื่อไฟล์แล้วเรียกหาผ่านฟอร์มจะสะดวกกว่า โดยต้องรวมไฟล์เอาไว้ในโฟลเดอร์เดียวกันทั้งหมดจะดีที่สุด

ส่วน SQL ที่ไม่สามารถ Operate ฟิลด์ที่เป็น Attachment ได้ เนื่องจากตัว Attachment นั้นเป็นข้อมูลแบบ Multi-Values ซึ่ง ไม่มีในภาษา SQL ครับ
การใช้ DAO เท่าที่เคยทำมาก็แค่เอาออกจากฟิลด์ มาใส่ใน HDD และเอาจาก HDD มาใส่ในอีกตาราง ซึ่งไม่แนะนำอีกเช่นกัน เพราะมีโอกาสไฟล์ (คือไฟล์ Attachment) เสียเยอะมาก ไม่ได้เกิดจาก DAO แต่เกิดจากข้อมูลที่เก็บไว้ในตาราง Access มันคงโดนพลังบางอย่างรบกวนจนไฟล์เสียครับ คือเปิดดูในฟอร์มได้ แต่พอเอาออกมาไฟล์เสียซะงั้น

ปัญหาเยอะมาก ดังนั้นอย่าใช้เลยครับ Attachment กับ OLE Object นี่น่ะ
โพสต์นี้ได้รับคำขอบคุณจาก: Max

9
จำได้ว่ามันมีหลายแบบมาก ทั้ง api wmi แต่ที่ผมมีในเครื่องเป็นแบบง่ายๆ ไม่ได้แสดงค่าอะไรแค่ให้ค่า True กับ False เท่านั้น แต่ฟังก์ชั่นนี้ตอบสนองเร็วใช้ได้ดีกว่าการ Ping แต่แม่นยำป่าว ต้องลองดูนะครับ

Function SystemOnline(ByVal ComputerName As String) As Boolean
    Dim colPingResults As Variant
    Dim oPingResult As Variant
    Dim strQuery As String
    strQuery = "SELECT * FROM Win32_PingStatus WHERE Address = '" & ComputerName & "'"
    Set colPingResults = GetObject("winmgmts://./root/cimv2").ExecQuery(strQuery)
    For Each oPingResult In colPingResults
        If Not IsObject(oPingResult) Then
            SystemOnline = False
        ElseIf oPingResult.StatusCode = 0 Then
            SystemOnline = True
        Else
            SystemOnline = False
        End If
    Next
End Function
-----------------------------------------------------
การใช้งาน
SystemOnline("192.168.1.3")
หรือ
SystemOnline("ชื่อคอมเป้าหมาย")
โพสต์นี้ได้รับคำขอบคุณจาก: Max

10
อัปเดตเพิ่มเติมนะคะ ตอนนี่สามารถอัปเดตข้อมูลได้แล้ว โดยการสร้าง temp table รองรับข้อมูลจาก oracle ก่อน แล้วจึงใช้คำสั่งอัปเดตค่ะ
โพสต์นี้ได้รับคำขอบคุณจาก: Max

11
ใส่ .BodyPart.Charset = "utf-8"   
ตามนี้ได้เลยครับ

https://stackoverflow.com/questions/43927471/send-up-arrow-%E2%86%91-character-to-iphone-with-sms-using-vba-and-a-cdo-mail-object

ผมลองแล้วใช้ได้



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

12
สำหรับ Gmail ใช้อันนี้ได้ครับ
https://wellsr.com/vba/2020/excel/vba-send-email-with-gmail/
แล้วก็เปิด App password gmail นำพาสที่ได้มาใช้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Max

13
เสริมหน่อยนะครับ คือ Unix Timestamp ในการแปลง เวลาจะเป็นมาตรฐาน GMT ซึ่งหากต้องการให้แสดงเป็นเวลาไทยต้อง GMT+7:00 ขึ้นอยู่กับว่าข้อมูลบันทึกมาจากไหนถ้าบันทึกเวลาเป็นไทยอยู่แล้วก็ไม่ต้องแปลง แต่ส่วนใหญเวลาเขาแปลงแสดงในสาธารณะเขาจะใช้ GMT ถ้าอย่างนั้น หากเราอยากจะรู้ว่าเป็นเวลาไทยเท่าไหร่ก็ต้องบวกอีก 7 ชั่วโมงด้วยนะครับ ไม่งั้นเวลาจะไม่ตรง ต้องตรวจสอบความถูกต้องของข้อมูลด้วยนะครับ
https://www.epochconverter.com/
โพสต์นี้ได้รับคำขอบคุณจาก: Max

14
หาจนเจอครับ มันเป็นรูปแบบของ UnixTime ซึ่งเป็นรูปแบบวันที่ บน MySQL
จึงเอามาฝากใว้ให้เพื่อนสมาชิก เผื่อว่า ติดปัญหาเดียวกัน
vDate =  ([StartTime]/86400)+#01/01/1970#

แหล่งที่มา
https://codebeautify.org/unix-time-stamp-converter
โพสต์นี้ได้รับคำขอบคุณจาก: Max

15
ห้อง Ms Access อื่นๆ / MS Access Runtime by อ.TTT
« เมื่อ: 02 ก.พ. 63 , 13:18:13 »
MS Access Runtime ของฟรีมีอยู่จริง? โดย อ.TTT (Access-Creator@youtube)

ฝากกดไลท์ แชร์ และติดตามอาจารย์ในยูทูปด้วยนะครับ :love:
โพสต์นี้ได้รับคำขอบคุณจาก: Max

16
ขอเสนอ "Access VBA ติดต่อกับ API" ด้วยนะครับ

เรื่องนี้คงลำบากหน่อยครับ เพราะทาง Microsoft เค้าไม่สนับสนุน API สำหรับผลิตภัณฑ์ในชุด Office

สิ่งที่เกิดคือทำให้ Coding ด้านนี้ไม่เสถียรจนไว้ใจได้ มักจะมีปัญหาจุกจิกตลอด ยิ่งมีการเปลี่ยนเวอร์ชั่น สิ่งที่เคยสร้างไว้ด้วยการเชื่อมต่อที่เค้าบอกว่าไม่สนับสนุนก็อาจใช้งานไม่ได้เลย

ผมเจอมา 2-3 รอบแล้ว เคยมีแล้วก็หายไปซะงั้น เช่น BCM, Access Pages
โพสต์นี้ได้รับคำขอบคุณจาก: Max

17
ปัญหานี้เป็นเพราะการซบเซาจากธุรกิจหนังสือในช่วงไม่กี่ปีที่ผ่านมา

การเสนอต้นฉบับการใช้งานโปรแกรมระดับสูงต่างๆ มักจะโดนดันตกไป (จริงๆ ไม่ใช่ "มักจะ" หรอก แต่แค่อ้าปากก็ไม่เอาแล้ว)

ทั้งที่จริงๆ แล้วเรื่องของ VBA นี่น่ะยังมีคนสนใจใช้งานกันอีกมาก

ช่วงนี้ภาวะธุรกิจหนังสือเริ่มดีขึ้น

เร็วๆ นี้ผมว่าจะลองผลักดันหนังสือ VBA Access/Excel อีกซักครั้ง หวังว่าจะสำเร็จ
โพสต์นี้ได้รับคำขอบคุณจาก: Max

18
เรียนรู้เบื้องต้นให้เชี่ยวชาญก่อนครับ ส่วนขั้นสูงมาเรียนรู้ในเว็บนี้ครับ ผมรับรอง ตำราไหนๆก็ไม่เทียบเท่า แต่ละท่านที่แนะนำ เทพทั้งนั้น!!!! Confirm...
โพสต์นี้ได้รับคำขอบคุณจาก: Max

หน้า: [1] 2