แสดงกระทู้

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

หน้า: [1]
1
คงต้องประยุกต์ใช้หน่อยละ เพื่อไม่ให้เป็นการลำบาก อ.
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

2
มีคำสั่งไหนแทน Sendkey {Enter} ได้บ้างครับ
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

3
อ่อคำนำหน้ากับชื่อติดกันตามนั้นเลยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

4
ขอบคุณ อ.สันติสุข มากครับได้แล้วครับ
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

5
ถ้าจะป้องกันการกดคีย์ภาษาไทยลงเท็กซ์บ็อกซ์ ก็ใส่โค้ดนี้ไว้ใน KeyPress event procedure
โค๊ด: [Select]
Private Sub xxx_KeyPress(KeyAscii As Integer)
    If KeyAscii >= 3585 And KeyAscii <= 3675 Then KeyAscii = 0
End Sub

ถ้าต้องการตรวจสอบว่ามีภาษาไทยอยู่ในเท็กซ์บ็อกซ์หรือไม่ ก็ใช้โค้ดนี้ครับ
โค๊ด: [Select]
    Dim i As Integer
    Dim c As String
   
    For i = 1 To Len(Me.Text2)
        c = Mid$(Me.Text2, i, 1)
        If AscW(c) >= 3585 And AscW(c) <= 3675 Then
            MsgBox "Found"
            Exit Sub
        End If
    Next i
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

6
ห้อง MS Access / : Popup ข้อความ
« เมื่อ: 18 มี.ค. 62 , 17:37:53 »
กำหนด Properties ของ Text Box เป็น Can Growth = Yes ก็จะแสดงทั้งหมดได้
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

7
ผมเขียน SQL ใน Access VB ผ่าน OraOLEDB เพื่อload data จากOracle มาเก็บไว้ใน Table ใน Access file โดยload แต่ละครั้งประมาณไม่ต่ำกว่า 2ล้าน records บางครั้งก็load ได้จนจบ บางครั้งก็เกิด error ตามนี้ครับ

Run-time error '3049' Cannot open database".It may not be a database that your application recognizes, or the file may be corrupt.

โค๊ดเริ่มต้นด้วย SQL  ดึงข้อมูลมาแล้วมา AddNew ใส่ Table ขณะที่กำลัง AddNew นั้นมักจะ Error ครับ ไม่ทราบจะป้องกันอย่างไร ขอบคุณครับ

conn.ConnectionTimeout = 0
conn.Open "Provider=OraOLEDB.Oracle;User id=XXXX;Password=XXXX;Data Source=XXXdb1;FetchSize=250;CacheType=Memory"

sqlstr = "select W.*, T.MATL_TYPE_CD, S.SIZE_ABBREVIATION,B.PURCHASE_MAJOR_CLASS, B.PURCHASE_MINOR_CLASS" & vbLf & _
         "from DA.ITEM_SIZE S, DA.MFG_PATH_BUY B, DA.MPS_ORDER_DETAIL W, DA.STYLE T" & vbLf & _
         "where W.SIZE_CD = S.SIZE_CD AND W.DEP_STYLE = T.STYLE_CD AND B.STYLE_CD = W.DEP_STYLE AND B.SIZE_CD = W.DEP_SIZE_CD" & vbLf & _
         "AND B.ATTRIBUTE_CD = W.DEP_ATTRIBUTE_CD AND B.COLOR_CD = W.DEP_COLOR AND B.PLANT_CD = W.DEP_PLANT "

p_rec.Open sqlstr, conn

If p_rec.EOF = False Then
      Set rs = CurrentDb.OpenRecordset("OPEN_WORKORDER_DEMAND")
      Do Until p_rec.EOF
        rs.AddNew
        rs!DETAIL_TYPE = p_rec!DETAIL_TYPE
        rs!DEP_STYLE = p_rec!DEP_STYLE
        rs!DEP_COLOR = p_rec!DEP_COLOR
        rs!DEP_ATTRIBUTE_CD = p_rec!DEP_ATTRIBUTE_CD
        rs!DEP_SIZE_CD = p_rec!DEP_SIZE_CD
        rs!DEP_STYLE_17DIG = p_rec!DEP_STYLE & p_rec!DEP_COLOR & p_rec!DEP_ATTRIBUTE_CD & p_rec!DEP_SIZE_CD
        rs!DEP_PLANT = p_rec!DEP_PLANT
        rs!Style = p_rec!Style
   
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

8
โค๊ด: [Select]
Private Sub Command10_Click()
Me.Dirty = False
Me.SerialNo.SetFocus
If IsNull(DLookup("SerialNo", "tblWareHouseAll", "SerialNo ='" & Me.SerialNo & "'")) Then
Call SaveRecord
DoCmd.OpenForm "frmBoxDetail", , , "SerialNo ='" & Me.SerialNo & "'"
Else
DoCmd.OpenForm "frmBoxDetail", , , "SerialNo ='" & Me.SerialNo & "'"
End If
End Sub
Sub SaveRecord()
Dim DB As Database
Dim RS As Recordset
Set DB = CurrentDb()
            Set RS = DB.OpenRecordset("tblWareHouseAll", DB_OPEN_DYNASET)
    RS.AddNew
    RS![SerialNo] = Me.SerialNo
    RS![BoxNo] = Me.BoxNo
    RS![Sequence] = "1"
    RS.Update
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

9
ห้อง MS Access / : Access 2016 64bit link Oracle database ไม่ได้
« เมื่อ: 23 ม.ค. 62 , 15:28:52 »
ผมเปลี่ยน Access 2007 เป็น 2016 64bit มีปัญหา Link กับ oracle database ไม่ได้
ติดตั้ง ODBC ที่ SysWOW64 ตอนที่เช็ค configure ก็ไม่มีปัญหาอะไร
ตอนนี้มืดแปดด้านครับ เพราะนโยบายบริษัทจะต้องเปลี่ยนเป็น 64 bit ทั้งหมด ทุกเครื่อง
มีใครเจอปัญหานี้บ้างครับ และแก้อย่างไรครับ
มี Error.pdf ส่งมาให้ดูด้วยครับ

มีใครพอจะแนะนำวิธีการแก้ไขได้บ้างครับ

ผมว่าน่าจะเป็นเพราะ Bit Version ของเครื่องคุณนี้ละครับ
คุณบอกว่า Office เป็น 64Bit แล้วด้วยใช่ไหมครับ
ลงลบ การเชื่อมต่อที่เป็น 64Bit อันเก่าออกไปก่อน
แต่ลองใช้วิธีนี้ดูก่อนครับ
อาจจะเป็นทางแก้

ไปที่   Start > Run.
พิมพ์ C:\windows\syswow64\odbcad32.exe แล้วตอบตกลง ดูเราจะเลือก 32Bit (ลง64)  ลองดูก่อนว่ามีไหมนะครับ

ถ้าไม่มี ลองเปิดที่  c:\windows\system32\odbcad32.exe
สองตัวนี้แหละ มันต้องได้ซักตัว

กด Add  เลือก ODBC driver จากรายการ แล้วลองตั้งค่าดูครับ
แล้วลอง Link ใหม่ว่าได้ไหม
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

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

11
1. ให้คอมไพล์โค้ดก่อนที่จะเอาไปลงเครื่องต่างๆ
2. ที่บอกว่าเปิดได้ หมายถึง เปิดจากตัว Runtime ที่ไปดาวน์โหลดมาใช่ไหม
2. ฟ้องว่าไม่เจอ ข้อความเต็มๆ คืออะไรครับ แสดงรายละเอียดด้วย
3. ถ้าเทเบิลเป็น Linked Table เช็คดีๆว่าแหล่งของเทเบิลต้นทางมีอยู่จริง และพาธที่ลิงค์ไปถูกต้องด้วย
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

12
ผมต้องแก้ไขอย่างไรครับ
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

13
ห้อง MS Access / : การใช้คำสั่ง iifซ้อน iif
« เมื่อ: 11 ธ.ค. 61 , 12:32:20 »
เข้าใจแล้วครับอาจารย์ ขอบคุณมากๆครับ
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb

15
ต้องการ แสดง กรอบเต็มหน้ารายงานแม้ ว่า มีข้อมูลแค่ 2 รายการ ต้องทำอย่างไร ครับ

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

หน้า: [1]