snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
songsug
Member
Posts: 71 Joined: Wed Apr 04, 2012 11:22 am
Location: สมุทรสาคร
#1
Post
by songsug » Wed Apr 04, 2012 11:43 am
เนื่องจากว่าผมทำ Report บางตัวแล้วมีความจำเป็นต้องใช้งานเจ้า MSHFlexGrid ซึ่งทำงานบน UserForm ครับแต่ติดปํญหาว่าเครื่องของ User เวลานำโปรแกรมไปใช้งานแล้วไม่สามารถ Create object ตัวนี้ได้ หรือบางทีก็ไม่รู้จัก Object ตัวนี้ทำให้บางเครื่องไม่สามารถใช้งานได้ครับ ซึ่งผมเองได้แก้ไขโดยการลง Mshflxgd.ocx และ regedt32 ได้เป็นผลสำเร็จแล้ว แต่่ก็ยังใช้งานไม่ได้ครับ หาวิธีมาหลายวิธีแล้ว ทั้งยังลง VB ให้กับเครื่อง User ก็ยังใช้งานไม่ได้ครับ รบกวนผู้รู้หน่อยนะครับ ขอบคุณล่วงหน้าครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Wed Apr 04, 2012 12:02 pm
เป็นการใช้บนโปรแกรมใดครับ หากเกี่ยวกับ VB ไม่ได้เกี่ยวกับ Excel หรือ VBA ให้โพสต์ที่หมวด Other ครับ
songsug
Member
Posts: 71 Joined: Wed Apr 04, 2012 11:22 am
Location: สมุทรสาคร
#3
Post
by songsug » Wed Apr 04, 2012 12:06 pm
บน Excel VBA ครับ แต่ใช้งานบน UserForm ของหน้า VBA ครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Wed Apr 04, 2012 12:17 pm
ได้ทำการ Add Reference ของ MSFlexGrid โดยเข้า VBE > Tools > Reference > เลือก MSFlexGrid > OK แล้วหรือไม่ครับ
songsug
Member
Posts: 71 Joined: Wed Apr 04, 2012 11:22 am
Location: สมุทรสาคร
#5
Post
by songsug » Wed Apr 04, 2012 12:47 pm
ทำหมดแล้วครับ รวมไปถึงลงทะเบียน Object ตัวดังกล่าวแล้ว โดยการเขียนเป็น Bat File ไว้ครับ และก็ขึ้นเสร็จสมบูรณ์แล้ว แต่ก็ยังไมไ่ด้ครับผม
อันนี้เป็น Bat File ที่ผมทำไว้ครับ มี 4 ตัวที่ติดปัญหาบ่อยๆ แต่มาเจอเจ้าตัว mshflxgd.ocx นี่ล่ะครับ แก้ไม่ได้ ผมได้ทำการลบออกจากเครื่อง User ก่อน และคัดลอกเข้าไปไว้ไหม่ แล้วค่อย regsvr32
@echo off
cd \
cd C:\Windows\System32
echo "Excel Development Tel 1556 (-_-)"
echo "Create By YO "
del MSCOMCT2.OCX
del MSDatGrd.ocx
del MSFLXGRD.OCX
del mshflxgd.ocx
copy \\backupsrv\it$\03_software\MAP_Drive\OCX\MSCOMCT2.OCX
copy \\backupsrv\it$\03_software\MAP_Drive\OCX\MSDatGrd.ocx
copy \\backupsrv\it$\03_software\MAP_Drive\OCX\MSFLXGRD.OCX
copy \\backupsrv\it$\03_software\MAP_Drive\OCX\mshflxgd.ocx
regsvr32 c:\windows\system32\MSCOMCT2.OCX
regsvr32 c:\windows\system32\MSDatGrd.ocx
regsvr32 c:\windows\system32\MSFLXGRD.OCX
regsvr32 c:\windows\system32\mshflxgd.ocx
songsug
Member
Posts: 71 Joined: Wed Apr 04, 2012 11:22 am
Location: สมุทรสาคร
#6
Post
by songsug » Wed Apr 04, 2012 1:11 pm
รูปไฟล์ตัวอย่างครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#7
Post
by snasui » Wed Apr 04, 2012 1:27 pm
อาการใช้ไม่ได้โปรแกรมมีการฟ้องอย่างใดหรือไม่ครับ
songsug
Member
Posts: 71 Joined: Wed Apr 04, 2012 11:22 am
Location: สมุทรสาคร
#8
Post
by songsug » Wed Apr 04, 2012 1:57 pm
ถ้า User เปิดไฟล์มันจะขึ้น compile error hidden module ครับอาจารย์ แต่พอเราเข้าไปที่หน้า VBA แล้วไปดูที่ UserForm ของเรา Object ของเราที่เคยใส่ไว้จะหายไป เหมือนกับว่าเครื่อง User ไม่รู้จัก Object ตัวนี้เลยครับ แต่ถ้าเราลอง Add ActiveX เข้าไปใหม่ที่เครื่อง User มันจะ Error ว่า The subject is not trusted for the specified action ครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Wed Apr 04, 2012 5:08 pm
songsug
Member
Posts: 71 Joined: Wed Apr 04, 2012 11:22 am
Location: สมุทรสาคร
#11
Post
by songsug » Wed Apr 04, 2012 5:34 pm
ไม่ได้ครับอาจารย์ T_T ยัง Error เหมือนเดิม ทั้งลง WindowsXP-KB960715-x86-ENU ก็แล้ว แล้วก็ comcat.dll เอาไปทับ แล้วก็
regsvr32 c:\windows\system32\comcat.dll
regsvr32 c:\windows\system32\msflxgrd.ocx
ซ้ำไปอีกทีหนึ่ง ยังไม่พอเข้าไปปรับ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\
ActiveX Compatibility\{6262D3A0-531B-11CF-91F6-C2863C385E30
ก็แล้ว ยอมแพ้ครับ T_T แต่ก็ขอบคุณมากครับ
tupthai
Bronze
Posts: 302 Joined: Sat Feb 04, 2012 2:49 pm
#12
Post
by tupthai » Wed Apr 04, 2012 5:40 pm
ปรับแล้วอย่าลืม restart เครื่องด้วยนะครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#13
Post
by snasui » Wed Apr 04, 2012 9:19 pm
songsug wrote: ไม่ได้ครับอาจารย์ T_T ยัง Error เหมือนเดิม ทั้งลง WindowsXP-KB960715-x86-ENU ก็แล้ว
ให้ลบออกหรือ Uninstall
KB960715 ออกไปก่อนแล้วทดสอบดูครับ เนื่องจากดูเหมือนว่า Update ตัวนี้จะมีปัญหากับ MSHFlexGrid ครับ
songsug
Member
Posts: 71 Joined: Wed Apr 04, 2012 11:22 am
Location: สมุทรสาคร
#14
Post
by songsug » Wed Apr 04, 2012 10:58 pm
ขอบคุณทุกท่านมากเลย พรุ่งนี้จะไปลองดูนะครับ ถ้าคืบหน้ายังไงผมจะแจ้งให้ทราบครับผม
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#15
Post
by bank9597 » Thu Apr 05, 2012 10:28 am
ผมสนใจเจ้า MSHFlexGrid ตัวนี้ครับ ไม่ทราบว่ามีวิธีการนำมาใช้อย่างไร ทราบว่ามันเป็นออฟชั่นเสริมเข้ามา แต่ผมไม่รู็ว่าจะนำเข้ามายังไง โดยรวมคือยังไม่ทราบเลย
รบกวนอาจารย์และผู้รู้ด้วยครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#16
Post
by snasui » Thu Apr 05, 2012 11:11 am
ลองตามนี้ครับ
ดาวน์โหลด MSHFLXGD.OCX มาก่อนแล้ว Copy ไปวางที่ C:\Winidows\System32
คลิก Start > Run > คีย์ regsvr32 "C:\Winidows\System32\MSHFLXGD.OCX" > Enter
Add เข้าไปใน Reference โดยเข้า VBE > Tools > Reference > เลือก MSFlexGrid > OK
songsug
Member
Posts: 71 Joined: Wed Apr 04, 2012 11:22 am
Location: สมุทรสาคร
#17
Post
by songsug » Thu Apr 05, 2012 1:15 pm
อันนี้เป็น Code ตัวอย่างเอาไปเล่นกันดูครับสำหรับคนที่สนใจ ใช้งานสะดวกดีครับ
อย่าลืม Reference พวก Recordset ก่อนนะครับ ไม่งั้นมันจะ Error
Code: Select all
Dim rs As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim comm As New ADODB.Command
Dim strConn As String
a = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 2) 'ประกาศตัวแปลเหมือน Excel เลย
B = Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 3)
strConn = "Provider=SQLOLEDB.1;Password=รหัสผ่าน;Persist Security Info=True;User ID=User;Initial Catalog=Database;Data Source=Server"
With conn
If .State = adStateOpen Then .Close
.ConnectionString = strConn
.Open
End With
comm.CommandType = adCmdUnknown
comm.CommandText = "SELECT * FROM Vw_FindingRemainDetail where SalesId ='" & a & "' and Lineindex ='" & B & "' "
comm.ActiveConnection = conn
Set rs = comm.Execute
Set FrmDetail.MSHFlexGrid2.DataSource = rs
FrmDetail.MSHFlexGrid2.ColWidth(0) = 1 ' พวกกนี้ใช้ปรับความกว้างนะครับ
FrmDetail.MSHFlexGrid2.ColWidth(4) = 1000
FrmDetail.MSHFlexGrid2.ColWidth(7) = 1500
FrmDetail.MSHFlexGrid2.ColWidth(8) = 1500
FrmDetail.MSHFlexGrid2.ColWidth(12) = 1
ปล. อาจารย์ครับ ตอนนี้เครื่องผม Error แทนเครื่อง User แล้วครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#18
Post
by bank9597 » Thu Apr 05, 2012 1:40 pm
ขอบคุณที่เอื้อเฟื้อน่ะครับ
พอดีว่าผมทำตามที่อาจารย์แนะนำมาให้ก่อน ได้แค่ขั้นตอนการ Run พอเข้า VBE > Tools > Reference > ผมกลับหา MSFlexGrid ไม่เจอ
ไม่รู้ว่าเพราะอะไร
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
songsug
Member
Posts: 71 Joined: Wed Apr 04, 2012 11:22 am
Location: สมุทรสาคร
#19
Post
by songsug » Thu Apr 05, 2012 2:09 pm
เข้าไปที่ VBE > Tools > Reference > Microsoft Hierarchical FlexGrid Control ครับ แล้วคุณก็จะได้พบเจ้าตัวที่อาจารย์บอกครับ
You do not have the required permissions to view the files attached to this post.
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#20
Post
by bank9597 » Thu Apr 05, 2012 2:16 pm
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ