คุณไม่สามารถเปลี่ยนแปลง เพิ่ม หรือลบข้อมูลในตารางที่เชื่อมโยงไปยังสมุดงาน Excel ใน Office Access 2007, Office Access 2003 หรือ Access 2002

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 904953 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

ใน Microsoft Office Access 2007 หรือ ใน Microsoft Office Access 2003 หรือ Microsoft Access 2002 คุณไม่สามารถเปลี่ยนแปลง เพิ่ม หรือลบข้อมูลในตารางที่เชื่อมโยงไปยังสมุดงาน Microsoft Excel

นอกจากนี้ คุณอาจพบลักษณะการทำงานนี้เมื่อมีเงื่อนไขใด ๆ ต่อไปนี้เป็นจริง:
  • คุณได้สร้างการสอบถามเพื่อดึงข้อมูลจากตารางที่เชื่อมโยงไปยังสมุดงาน Excel
  • คุณสร้างฟอร์มที่เข้าถึงข้อมูลจากตารางที่เชื่อมโยงไปยังสมุดงาน Excel
  • คุณใช้ DAO หรือ ADO เพื่อปรับปรุงตารางโดยทางโปรแกรมที่เชื่อมโยงไปยังสมุดงาน Excel
คุณได้รับข้อความแสดงข้อความต่อไปนี้เมื่อคุณทำการสอบถามเพื่อการปรับปรุงระเบียนในสมุดงาน Excel ที่เชื่อมโยง:
การดำเนินการต้องใช้การสอบถาม updateable
คุณได้รับข้อความแสดงข้อความต่อไปนี้เมื่อคุณใช้ DAO โดยทางโปรแกรมปรับปรุงตารางที่เชื่อมโยงไปยังสมุดงาน Excel:
ข้อผิดพลาดรันไทม์ '3027' ไม่สามารถปรับปรุง ฐานข้อมูลหรือวัตถุเป็นแบบอ่านอย่างเดียว
เมื่อคุณพยายามที่จะปรับปรุงข้อมูลที่เชื่อมโยงใน ADO ข้อความจะเหมือนกัน แต่หมายเลขข้อผิดพลาดที่อาจจะเหมือนกับข้อความต่อไปนี้:
-2147217911 (80040e09)
เมื่อคุณรันการสอบถามเพื่อแทรกเร็กคอร์ดไว้ในสมุดงาน Excel คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้แม้ว่าสมุดงาน Excel ไม่ได้ถูกเชื่อมโยงไปยังฐานข้อมูลการเข้าถึง:
การดำเนินการต้องใช้การสอบถาม updateable

สาเหตุ

ซึ่งต้องมีการทำงานที่เกิดขึ้นหากเงื่อนไขใด ๆ ต่อไปนี้เป็นจริง:
  • คุณกำลังใช้การเข้าถึงของ Office 2007
  • คุณได้ติดตั้ง Microsoft Office 2003 Service Pack 2 (SP2) หรือ service pack รุ่นที่ใหม่กว่า หรือโปรแกรมปรับปรุงการเข้าถึง 2003 ที่นำออกใช้หลังจาก Office 2003 SP2

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Microsoft Office 2003 Service Pack 2 คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
    887616คำอธิบายของ Office 2003 Service Pack 2
  • คุณได้ติดตั้งการปรับปรุงสำหรับ Access 2002 (KB904018) ที่ 18 ตุลาคม 2005

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับปรุงสำหรับ Access 2002 (KB904018), ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
    904018คำอธิบายของการปรับปรุงสำหรับ Access 2002: 18 ตุลาคม 2005
  • คุณได้ติดตั้งรันไทม์เข้าถึงโปรแกรมประยุกต์ที่มี Microsoft Office 2003 Service Pack 2 (SP2) หรือ service pack รุ่นที่ใหม่กว่า โปรแกรมปรับปรุงการเข้าถึง 2003 ที่นำออกใช้หลังจาก Office 2003 SP2 หรือการปรับปรุงสำหรับ Access 2002 (KB904018) ที่มี dated 18 ตุลาคม 2005 หรือใหม่กว่า
    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการที่รวมแฟ้มการปรับปรุง Office กับโปรแกรมประยุกต์ Access รันไทม์ คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
    916176ตัวช่วยสร้างใช้เวลาเรียกใช้แฟ้มที่มีอยู่ ด้วยรุ่นวางจำหน่ายการเข้าถึงเมื่อคุณสร้างแพคเกจการติดตั้งสำหรับโปรแกรมประยุกต์ ในการเข้าถึง 2003 หรือ ใน Access 2002

การหลีกเลี่ยงปัญหา

เมื่อต้องการแก้ไขลักษณะการทำงานที่คาดไว้ ใช้วิธีการต่อไปนี้อย่างใดอย่างหนึ่ง

วิธีที่ 1: ใช้ Microsoft Excel

เปิดสมุดงาน Excel ที่เชื่อมโยงใน Microsoft Excel และทำการเปลี่ยนแปลงของคุณไปยังสมุดงานแล้ว เมื่อทำการเปลี่ยนแปลงเสร็จเรียบร้อยแล้ว บันทึกการเปลี่ยนแปลง และปิดสมุดงานแล้ว

วิธีที่ 2: ใช้การเข้าถึงของ Office 2007, Access 2003 หรือ Access 2002

การนำเข้าสมุดงาน Excel ที่เชื่อมโยงไปยังการเข้าถึง และจากนั้น ทำการเปลี่ยนแปลงของคุณกับข้อมูล When you have completed the changes, export the data as an Excel .xls file.

To export the table from Access to Excel, run the following code in Access.
Public Sub WorkArounds()
On Error GoTo Leave

    Dim strSQL, SQL As String
    Dim Db As ADODB.Connection
    Set Db = New ADODB.Connection
    Db.CursorLocation = adUseClient
    Db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=<AccessPath>"
    'Note: In Office Access 2007, use the following line of code:
    'Db.Open "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=<AccessPath>"
    SQL = "<MyQuery>"
    CopyRecordSetToXL SQL, Db
    Db.Close
    MsgBox "Access has successfully exported the data to excel file.", vbInformation, "Export Successful."
    Exit Sub
Leave:
        MsgBox Err.Description, vbCritical, "Error"
        Exit Sub
End Sub

Private Sub CopyRecordSetToXL(SQL As String, con As ADODB.Connection)
    Dim rs As New ADODB.Recordset
    Dim x
    Dim i As Integer, y As Integer
    Dim xlApp As Excel.Application
    Dim xlwbBook As Excel.Workbook, xlwbAddin As Excel.Workbook
    Dim xlwsSheet As Excel.Worksheet
    Dim rnData As Excel.Range
    Dim stFile As String, stAddin As String
    Dim rng As Range
    stFile = "<ExcelPath>"
    'Instantiate a new session with the COM-Object Excel.exe.
    Set xlApp = New Excel.Application
    Set xlwbBook = xlApp.Workbooks.Open(stFile)
    Set xlwsSheet = xlwbBook.Worksheets("<WorkSheets>")
    xlwsSheet.Activate
    'Getting the first cell to input the data.
    xlwsSheet.Cells.SpecialCells(xlCellTypeLastCell).Select
    y = xlApp.ActiveCell.Column - 1
    xlApp.ActiveCell.Offset(1, -y).Select
    x = xlwsSheet.Application.ActiveCell.Cells.Address
    'Opening the recordset based on the SQL query and saving the data in the Excel worksheet.
    rs.CursorLocation = adUseClient
    If rs.State = adStateOpen Then
        rs.Close
    End If
    rs.Open SQL, con
    If rs.RecordCount > 0 Then
        rs.MoveFirst
        x = Replace(x, "$", "")
        y = Mid(x, 2)
        Set rng = xlwsSheet.Range(x)
        xlwsSheet.Range(x).CopyFromRecordset rs
    End If
    xlwbBook.Close True
    xlApp.Quit
    Set xlwsSheet = Nothing
    Set xlwbBook = Nothing
    Set xlApp = Nothing

End Sub
หมายเหตุ:In this code example, replace the following placeholders:
  • <accesspath></accesspath>
  • <excelpath></excelpath>
  • <myquery></myquery>
    <myquery></myquery>is placeholder for the query that you run against the tables in the Access database. The result of the query is exported to the Excel workbook.
  • <worksheets></worksheets>
    <worksheets></worksheets>is a placeholder for the worksheet in Excel to which you want to export the result.
To run this code example, press CTRL+G to open theทันทีหน้าต่าง ชนิดWorkAroundsแล้ว กด ENTER

ข้อมูลเพิ่มเติม

Because of legal issues, Microsoft has disabled the functionality in Access 2003 and in Access 2002 that let users change the data in linked tables that point to a range in an Excel workbook. However, when you make changes directly in the Excel workbook, the changes appear in the linked table in Access.

คุณสมบัติ

หมายเลขบทความ (Article ID): 904953 - รีวิวครั้งสุดท้าย: 16 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft Office Access 2007
  • Microsoft Office Access 2007 Runtime
  • Microsoft Office Access 2003
  • Microsoft Office Access 2003 Runtime
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2002 Runtime
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
Keywords: 
kbexpertiseadvanced kbdatabase kbtshoot kbprb kbmt KB904953 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:904953

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com