Page 1 of 1

ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน UserForm

Posted: Wed Apr 04, 2012 11:43 am
by songsug
เนื่องจากว่าผมทำ Report บางตัวแล้วมีความจำเป็นต้องใช้งานเจ้า MSHFlexGrid ซึ่งทำงานบน UserForm ครับแต่ติดปํญหาว่าเครื่องของ User เวลานำโปรแกรมไปใช้งานแล้วไม่สามารถ Create object ตัวนี้ได้ หรือบางทีก็ไม่รู้จัก Object ตัวนี้ทำให้บางเครื่องไม่สามารถใช้งานได้ครับ ซึ่งผมเองได้แก้ไขโดยการลง Mshflxgd.ocx และ regedt32 ได้เป็นผลสำเร็จแล้ว แต่่ก็ยังใช้งานไม่ได้ครับ หาวิธีมาหลายวิธีแล้ว ทั้งยังลง VB ให้กับเครื่อง User ก็ยังใช้งานไม่ได้ครับ รบกวนผู้รู้หน่อยนะครับ ขอบคุณล่วงหน้าครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 12:02 pm
by snasui
:D เป็นการใช้บนโปรแกรมใดครับ หากเกี่ยวกับ VB ไม่ได้เกี่ยวกับ Excel หรือ VBA ให้โพสต์ที่หมวด Other ครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 12:06 pm
by songsug
บน Excel VBA ครับ แต่ใช้งานบน UserForm ของหน้า VBA ครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 12:17 pm
by snasui
:D ได้ทำการ Add Reference ของ MSFlexGrid โดยเข้า VBE > Tools > Reference > เลือก MSFlexGrid > OK แล้วหรือไม่ครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 12:47 pm
by songsug
ทำหมดแล้วครับ รวมไปถึงลงทะเบียน 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

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 1:11 pm
by songsug
รูปไฟล์ตัวอย่างครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 1:27 pm
by snasui
:D อาการใช้ไม่ได้โปรแกรมมีการฟ้องอย่างใดหรือไม่ครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 1:57 pm
by songsug
ถ้า User เปิดไฟล์มันจะขึ้น compile error hidden module ครับอาจารย์ แต่พอเราเข้าไปที่หน้า VBA แล้วไปดูที่ UserForm ของเรา Object ของเราที่เคยใส่ไว้จะหายไป เหมือนกับว่าเครื่อง User ไม่รู้จัก Object ตัวนี้เลยครับ แต่ถ้าเราลอง Add ActiveX เข้าไปใหม่ที่เครื่อง User มันจะ Error ว่า The subject is not trusted for the specified action ครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 2:34 pm
by snasui
:D ลองดูจาก Link นี้ครับ ผมไม่สามารถเปิดดูได้เลยต้องเปิดผ่าน Cache http://webcache.googleusercontent.com/s ... clnk&gl=th

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 5:08 pm
by snasui
:D ลองลบ KB960715 XP update ดูครับ :arrow: http://www.excelforum.com/excel-program ... blems.html

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 5:34 pm
by songsug
ไม่ได้ครับอาจารย์ 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 แต่ก็ขอบคุณมากครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 5:40 pm
by tupthai
ปรับแล้วอย่าลืม restart เครื่องด้วยนะครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 9:19 pm
by snasui
songsug wrote:ไม่ได้ครับอาจารย์ T_T ยัง Error เหมือนเดิม ทั้งลง WindowsXP-KB960715-x86-ENU ก็แล้ว
ให้ลบออกหรือ Uninstall KB960715 ออกไปก่อนแล้วทดสอบดูครับ เนื่องจากดูเหมือนว่า Update ตัวนี้จะมีปัญหากับ MSHFlexGrid ครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Wed Apr 04, 2012 10:58 pm
by songsug
ขอบคุณทุกท่านมากเลย พรุ่งนี้จะไปลองดูนะครับ ถ้าคืบหน้ายังไงผมจะแจ้งให้ทราบครับผม :D

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Thu Apr 05, 2012 10:28 am
by bank9597
:D ผมสนใจเจ้า MSHFlexGrid ตัวนี้ครับ ไม่ทราบว่ามีวิธีการนำมาใช้อย่างไร ทราบว่ามันเป็นออฟชั่นเสริมเข้ามา แต่ผมไม่รู็ว่าจะนำเข้ามายังไง โดยรวมคือยังไม่ทราบเลย

รบกวนอาจารย์และผู้รู้ด้วยครับ :D

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Thu Apr 05, 2012 11:11 am
by snasui
:D ลองตามนี้ครับ
  1. ดาวน์โหลด MSHFLXGD.OCX มาก่อนแล้ว Copy ไปวางที่ C:\Winidows\System32
  2. คลิก Start > Run > คีย์ regsvr32 "C:\Winidows\System32\MSHFLXGD.OCX" > Enter
  3. Add เข้าไปใน Reference โดยเข้า VBE > Tools > Reference > เลือก MSFlexGrid > OK

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Thu Apr 05, 2012 1:15 pm
by songsug
อันนี้เป็น 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 แล้วครับ

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Thu Apr 05, 2012 1:40 pm
by bank9597
:D ขอบคุณที่เอื้อเฟื้อน่ะครับ :mrgreen:

พอดีว่าผมทำตามที่อาจารย์แนะนำมาให้ก่อน ได้แค่ขั้นตอนการ Run พอเข้า VBE > Tools > Reference > ผมกลับหา MSFlexGrid ไม่เจอ

ไม่รู้ว่าเพราะอะไร :|

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Thu Apr 05, 2012 2:09 pm
by songsug
เข้าไปที่ VBE > Tools > Reference > Microsoft Hierarchical FlexGrid Control ครับ แล้วคุณก็จะได้พบเจ้าตัวที่อาจารย์บอกครับ :D

Re: ผมรบกวนผู้รู้ช่วยหน่อยครับ เกี่ยวกับ MSHFlexGrid บน User

Posted: Thu Apr 05, 2012 2:16 pm
by bank9597
:tt: :tt: :tt: :tt:

ขอบคุณมากครับ