Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Hibajelenségek
Az Excel-munkalap ADO-n és ODBC-n keresztüli szerkesztésekor az alábbi hibaüzenet jelenhet meg, ha ADO DataControl-objektumot használ:
[Microsoft][ODBC Excel Driver] Operation must use an updateable query.
Ha ADO-kóddal létrehozott Rekordhalmaz-objektumot használ, a következő hibaüzenet jelenhet meg az Excel-munkalap ADO-n és ODBC-n keresztüli szerkesztésekor:
Run-time error '-2147467259(80004005)': [Microsoft][ODBC Excel Driver] Operation must use an updateable query.
Oka
Ez a probléma akkor fordul elő, ha olvasási módként mentett vagy megnyitott munkalapot próbál szerkeszteni.
Megjegyzés:
A ReadOnly az Excelhez való ODBC-kapcsolat alapértelmezett beállítása adatforrásnévvel (DSN) vagy anélkül. Ezért a felhasználónak mindig módosítania kell ezt a beállítást az adatok szerkesztéséhez.
Rezolúció
A probléma megoldásához használja az alábbi módszereket:
Győződjön meg arról, hogy a Recordset objektum LockType tulajdonsága nincs ReadOnly értékre állítva.
Győződjön meg arról, hogy a megnyitni kívánt fájl nem ReadOnly néven van mentve.
Ha DSN-n keresztül csatlakozik, kövesse az alábbi lépéseket:
- Nyissa meg a Vezérlőpultot, majd válassza az ODBC adatforrás-rendszergazda lehetőséget.
- Kattintson duplán a DSN-re.
- Az ODBC Microsoft Excel telepítő párbeszédpanelen válassza a Beállítások lehetőséget.
- Győződjön meg arról, hogy a ReadOnly jelölőnégyzet nincs bejelölve.
Ha DSN-nélküli kapcsolatot használ, ügyeljen arra, hogy a "ReadOnly=0" beállítás szerepeljen a kapcsolati sztringben. Például:
cn.Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=C:\MyDoc.xls;ReadOnly=0;"
Státusz
Ez a viselkedés terv szerint történik.
További információ
A viselkedés reprodukálásának lépései
Hozzon létre egy új Standard EXE-projektet a Visual Basicben.
A Projekt menüBen válassza a Hivatkozások lehetőséget, majd adjon hozzá egy hivatkozást a Microsoft ActiveX Adatobjektum-tárhoz.
Parancs gomb hozzáadása a Form1-hez.
Adja hozzá a következő kódot a Form1-hez:
Dim rs As ADODB.Recordset Dim cn As ADODB.Connection Private Sub Form_Load() Command1.Caption = "Edit" End Sub Private Sub Command1_Click() Dim DocPath As String DocPath = App.Path & "\Test.xls" Set cn = New Connection Set rs = New Recordset cn.Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & DocPath & ";ReadOnly=1" rs.LockType = adLockOptimistic rs.Open "TB1", cn rs.AddNew rs.Fields(1).Value = "New Value" rs.Update rs.Close cn.Close Set rs = Nothing Set cn = Nothing End Sub
Mentse az alkalmazást.
Hozzon létre egy új Excel-munkalapot, majd mentse a munkalapot Test.xls.
A Beszúrás menüben mutasson a Név pontra, majd válassza a Definiálás lehetőséget.
Hozzon létre egy új táblázatot az Excel-munkalapon belül, majd nevezze el a táblázatot TB1 néven.
Mentse a munkalapot ugyanabban a mappában, mint a Visual Basic alkalmazás.
Nyomja le az F5 billentyűt az alkalmazás futtatásához.
Hivatkozások
További információ : Office Space: Tippek és trükkök a Microsoft Office-alkalmazások szkripteléséhez.