@ ประกาศใช้งานเว็บบอร์ดใหม่คลิกลิ้งได้ที่โลโก้ ไท.Access หรือกด --> บอร์ดเรียนรู้ Access สำหรับคนไทย 
                         โพสต์ถาม,ตอบที่บอร์ดใหม่ แล้วจะใส่ลิ้งอ้างมาที่บอร์ดนี้หรือไม่ก็ตามสะดวกครับ


Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ ระบบฐานข้อมูล
Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ การเขียนโปรแกรม
Access : เป็นได้ทั้งตัวเก็บฐานข้อมูล และตัวจัดการฐานข้อมูล
Thai Access : บอร์ดเสริมการเรียนรู้ Access ด้วยภาษาไทย


Back to Board : Thai Access Webboard

import ชื่อ cell และค่า


Topic by Message Posted : on : 28/11/2557 13:27:20
chai  ผมมีข้อมูลใน Excel และต้องการ import ค่ามาใส่ access ให้มี 2 field ได้แก่ cell_ name(ตำแหน่ง cell ใน excel) และ cell_value (ค่าใน cell) ทำได้มั้ยครับ และทำอย่างไร เช่น
cell_name      cell_value
A1                   12
A2                    5
B1                   1.5
B2                   0.12
C1                   8
C2                   3



7 Reply in this Topic. Dispaly 1 pages and you are on page number 1

Reply by Message on : 29/11/2557 22:15:18
สมชาย
(R19832)
ถ้าไม่มีปัญหาเรื่องของ Format ของข้อมูล และได้ออกแบบตารางใน MS-Access ไว้แล้วโดยมี 2 ฟิวด์ที่พูดถึงนี้ เมื่อตอนเรา Import File มา มันจะมีถามด้วยว่าจะ Import มาเป็นตารางใหม่ หรือ Import เข้าในตารางที่มีอยู่แล้วใน MS-Access
Back to Top
Reply by Message on : 30/11/2557 18:13:37
chai
(R19833)
คือว่า ข้อมูลใน excel มันจะมี ชื่อ cell และ ค่าใน cell ดังรูปครับ ผมต้องการ code หรือวิธีการใดๆก็ตาม สำหรับ import ค่าทั้งสองมาเก็บใน access โดยให้ Field cell_name เก็บชื่อของ cell และ Field cell_value เก็บค่าใน cell นั้นๆ ครับ




Back to Top
Reply by Message on : 1/12/2557 15:18:31
สันติสุข
(R19837)
ทำได้ครับ โค้ดหลักที่สำคัญอยู่ที่คำตอบแรกใน http://stackoverflow.com/questions/3875415/loop-through-each-cell-in-a-range-of-cells-when-given-a-range-object โค้ดนี้จะเขียนบน Excel เอง หรือจะใน Access เองก็ได้ครับ ถ้าเขียนใน Excel ก็ต้องเรียกเปิดฐานข้อมูล Access ถ้าเขียนใน Access ก็ต้องเรียกอ่านจากไฟล์ Excel ด้วย GetObject( ) ลองหาในกระทู้เก่านะครับ
Back to Top
Reply by Message on : 1/12/2557 19:22:26
chai
(R19838)
รบกวนเขียน code ให้หน่อยครับ
สมมุติรายละเอียดดังนี้
File path:                    C:\Data.xlsx
Worksheet name:       data1
Range:                      A1:Z100
Back to Top
Reply by Message on : 1/12/2557 23:51:55
สันติสุข
(R19839)
ใครว่างช่วยเขียนแทนหน่อย ช่วงนี้ผมไม่ว่างมาเขียนรายละเอียดนะครับ
Back to Top
Reply by Message on : 3/12/2557 18:29:51
TTT
(R19843)
- สามารถทำได้โดยการดึงคำสั่งของ MS Excel มาใช้งานรวมกับคำสั่ง DAO
- สร้างตารางใหม่สมมุติชื่อ Tb_Import ใน MS Access พร้อมฟิลด์ด้วยตัวเอง หรืออาจเขียนฟังก์ชั่นสำหรับสร้างตารางและฟิลด์ ก็ต้องเขียนเพิ่มเอง
- เมื่อได้สร้างตารางพร้อมฟิลด์ที่ต้องการรับค่าแล้ว ก็เขียนคำสั่งเพื่อ Import ข้อมูลจากไฟล์เป้าหมายลงตารางเป้าหมายดังนี้:
'----------------Code Start----------------
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("Tb_Import") ' ชื่อตารางเป้าหมาย

    Dim objExcel As Object
    Set objExcel = CreateObject("Excel.Application")
    Dim objBook As Object
    Set objBook = objExcel.Workbooks.Open("C:\Data.xlsx") ' พาธและชื่อไฟล์ MS Excel เป้าหมาย
    
    Dim sCount As Integer
    sCount = objBook.Worksheets.Count
    Dim i As Integer
    For i = 1 To sCount
        If objBook.Sheets(i).Name = "data1" Then ' ชื่อ Sheet ที่ต้องการข้อมูลบนไฟล์ MS Excel
            Exit For
        End If
    Next

    Dim objSheet As Object
    Set objSheet = objBook.Worksheets(i)
    Dim rRng As Object
    Set rRng = objSheet.Range("A1:Z100") ' กำหนดช่วงข้อมูลที่ต้องการของเซลในไฟล์ MS Excel
    Dim rCell As Object
    For Each rCell In rRng.Cells
        rs.AddNew
        rs(0) = Replace(rCell.Address, "$", "") ' rCell.Address คือค่าตำแหน่งของเซลบนไฟล์ MS Excel แต่จะติดอักษร $ มาด้วย ดังนั้นจึงต้องตัดทิ้งก่อน
        rs(1) = rCell.Value ' rCell.Value คือ ข้อมูลในตำแหน่งเซลนั้นๆ
        rs.Update
    Next rCell
    
    objExcel.ActiveWorkbook.Close ' ทำการปิดไฟล์ MS Excel เมื่อเสร็จ
    objExcel.Quit ' ทำการปิดโปรแกรม MS Excel
    Set rRng = Nothing
    Set objSheet = Nothing
    Set objBook = Nothing
    Set objExcel = Nothing
    
    rs.Close: Set rs = Nothing
    Set db = Nothing
    MsgBox "Import Completed Successfully"
'-----------------Code End-----------------

ปรับใช้ดูนะครับ

ปล. อันนี้นอกเรื่องหน่อย ไม่ได้เกี่ยวกับกระทู้นี้นะครับ คือพักนี้เหมือนมีนักศึกษาเข้ามาถามเพื่อทำงานส่งป่าวก็ไม่รู้ บางทีผมก็เริ่มคิดว่าการเขียนโค๊ดให้แบบนี้เหมือนกับรับทำการบ้านออนไลน์หรือเปล่าก็ไม่รู้ หากเป็นคนที่จะเอาไปใช้งานจริงก็ยินดีไม่เป็นไรนะครับ ถือว่าไม่ได้ศึกษามา แต่หากเป็นนักศึกษา ผมขอให้ใช้สิ่งที่เรียนมาคิดก่อนครับ การเรียนแบบ copy paste ส่งอาจารย์ สุดท้ายแล้วจะไม่ได้อะไรเลย
Back to Top
Reply by Message on : 3/12/2557 18:53:29
chai
(R19845)
ขอบคุณมากครับคุณ TTT จะลองปรับใช้ดู ขอแนะนำตัวครับ ผมไม่ใช่นักศึกษาครับ ผมรับราชการเป็นเภสัชกร ในโรงพยาบาลของรัฐแห่งหนึ่ง แต่มีความสนใจศึกษาหาความรู้เรื่อง Database โดยเฉพาะ MS Access,Mysql มีความรู้แค่พื้นฐานครับ ความรู้บางอย่างมันเกินความสามารถของผม จึงต้องรบกวนถามผู้รู้ใน board นี้ ซึ่งก็ช่วยได้มากเลยครับ ต้องขอขอบคุณทุกๆท่านที่ให้ความรู้อย่างที่หาได้ยากจริงๆจากตำรา
Back to Top

 @ ประกาศใช้งานเว็บบอร์ดใหม่คลิกลิ้งได้ที่โลโก้ ไท.Access หรือกด --> บอร์ดเรียนรู้ Access สำหรับคนไทย 
                         โพสต์ถาม,ตอบที่บอร์ดใหม่ แล้วจะใส่ลิ้งอ้างมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ


Sorry, you can NOT post a reply.
+++ webboard source: ASPThai.Net Webboard 6.0 webbord +++++++ admin : yeadram +++