Discussion:
Zugriff aus Excel auf SQL Datenbank
(zu alt für eine Antwort)
Brian
2006-12-18 15:27:36 UTC
Permalink
Hallo...

Ist es möglich, mit Hilfe eines ExcelSheet auf einen Datensatz in
einer SQL Datenbank (SQL Server 2005 Enterprise Edition) zuzugreifen..

D.h, dass ich zum Beispiel in Spalte A eine Artikelnummer schreibe und
dann die in der Datenbank liegen Daten wie Größe Höhe GEwicht usw
alles in die folgenden Spalten geschrieben wird... wenns geht in
Echtzeit...


Kann mir da einer etwas dazu schreiben, ob dies zuerst Allgemein
möglich ist und wie?!?

Danke und Gruß
Brian
2006-12-18 16:48:44 UTC
Permalink
Hallo Wolfgang,

danke für die schnelle Hilfe.. habe noch eine Frage, bevor ich mich
auf die Suche begebe...

kannst du mir in etwas sagen, ob dies in einer akzeptablen Wartezeit
für den User zu gestalten ist!?!

Denn wenn, so ein Zugriff auf die DB 2-3 Sek pro Artikel den ich
eingebe dauert, ist dies nicht wirklich in meinem Interesse...
arno
2006-12-19 13:06:12 UTC
Permalink
Hi Brian,

ich mach so was immer mit ADO auf verschiedene Datenbanken, du musst
dir den Verbindungsstring zu SQL-Datenbank selbst einrichten (Code ist
unten), im Prinzip geht dann alles gleich.

Fallstricke sind Datumsfelder, grosse Memofelder können Excel
überfordern. Den Check der Excel-Version (auf 97) kannst du dir ev.
schenken.

Ich hab mir eine Exceldatei zusammengebastelt, mit der jeder Report
anfängt, enthält ein Vorlagenblatt mit den Abfrageparameter und ein
Blatt mit der Datenbankverbindung. Sind für einen Report mehrere
Abfragen nötig, wird einfach das Vorlagenblatt kopiert.

arno

PS:
So kannst du aus einer MDB-Datenbank Daten abfragen, lies mal:
Q246335 HOWTO: Transfer Data from ADO Recordset to Excel with
Automation
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q246335


Mit folgendem Makro kannst du den notwendigen Verbindungsstring
erzeugen (in eine leere Mappe kopieren, Bemerkungszeile beachten!):

Option Private Module
Dim cn As ADODB.Connection
Sub asCreateConnection()
' requires a reference to Microsoft OLE DB Service Component 1.0 Type
Library
Dim strerror As String
On Error GoTo errHandler
Cells(15, 1).Value = ""
strerror = "Could not create a connection. There are problems with
the reference to the Microsoft OLE DB Service Component 1.0 Type
Library"

Dim MSDASCObj As MSDASC.DataLinks
Set MSDASCObj = New MSDASC.DataLinks
Set cn = New ADODB.Connection

MSDASCObj.PromptEdit cn
strerror = "A problem occurred when opening the database."
On Error GoTo errHandler1
cn.Open
Cells(15, 1).Value = cn.ConnectionString 'der gesuchte
connectionstring

MsgBox "Connection opened successfully"
cn.Close
Cells(6, 3).Select
strerror = ""
Exit Sub
errHandler:
Cells(15, 1).Value = strerror
Cells(6, 3).Select
Exit Sub
errHandler1:
Dim errLoop As ADODB.Error
For Each errLoop In cn.Errors
strerror = strerror & " Error " & errLoop.Number & _
" " & errLoop.Description & _
" (Source: " & errLoop.Source & ")" & _
" (SQL State: " & errLoop.SqlState & ")" & _
" (NativeError: " & errLoop.NativeError & ")"
Next
Cells(15, 1).Value = strerror
Cells(6, 3).Select
End Sub



PPS:
Falls du noch andere Fragen hast (Liste von Doug Laudenschlager),
wechsle
die Q-Nummer des obigen Links aus:


Basic
-----
Q257819 HOWTO: Use ADO with Excel Data from Visual Basic or VBA
Q303814 HOWTO: Use ADOX with Excel Data from Visual Basic or VBA
Q278973 SAMPLE: ExcelADO Shows How to Read/Write Data in Excel
Workbooks
Q195951 HOWTO: Query and Update Excel Data Using ADO From ASP


Transferring Data into Excel
----------------------------
Q247412 INFO: Methods for Transferring Data to Excel from Visual Basic
Q295646 HOWTO: Transfer Data from ADO Data Source to Excel with ADO
Q246335 HOWTO: Transfer Data from ADO Recordset to Excel with
Automation
Q319951 HOW TO: Transfer Data to Excel Using SQL Server DTS
Q306125 HOW TO: Import Data from SQL Server into Microsoft Excel


Known Issues (most recent listed first)
------------
Q319998 BUG: Querying Open Excel Worksheet Using ADO Causes Memory Leak
(pending)
Q316831 PRB: Cannot Configure Data Connections to Excel Files
Q316809 BUG: No ADO Connection Error When Excel Workbook Is Not Found
Q316756 PRB: Error Using ADO.Net OleDbDataAdapter to Modify Excel
Workbook
Q314763 FIX: ADO Inserts Data into Wrong Excel Columns
Q300948 BUG: Incorrect TABLE_TYPE Is Returned for Excel Worksheets
Q294410 ACC2002: Nulls Replaced w/ Next Field's Data Exporting to Excel
Q293828 BUG: Excel File Size Grows When You Edit ADO Recordset
Q288343 BUG: Excel ODBC Driver Disregards FirstRowHasNames/HDR Setting
Q246167 PRB: Collating Sequence Error Opening XLS as ADO Recordset
Q211378 XL2000: 'Could Not Decrypt File' Error with Password-Protected
File
Q194124 PRB: Excel Values Returned as NULL Using DAO OpenRecordset
(mixed
data types)
Q189897 XL97: Data Truncated to 255 Characters with Excel ODBC Driver
(Rows
To Scan)


VB/VB.Net (most recent listed first)
---------
Q318373 HOW TO: Use GetOleDbSchemaTable with Excel in Visual Basic .Net
Q316934 HOW TO: Use ADO.Net to Retrieve and Modify Records in Excel
Q311731 HOW TO: Query and Display Excel Data Using ADO.NET, VB .NET
Q306022 HOW TO: Transfer Data to an Excel Workbook Using Visual Basic
.NET
Q302094 HOWTO: Fill/Retrieve Excel Data Using Arrays From VB .Net


ASP/ASP.Net/Web (most recent listed first)
---------------
Q317719 HOW TO: Export Data in DataGrid on an ASP. NET WebForm to Excel
Q311194 HOW TO: Use ASP.NET to Display Database Data in Excel
Q308247 HOW TO: Use ASP.NET to Query and Display Database Data in Excel
Q307603 HOW TO: Write Binary Files to the Browser Using ASP.NET & VB
Q306572 HOW TO: Query and Display Excel Data Using ASP.NET, ADO.NET
Q276488 HOWTO: Use ADODB.Stream to Read Binary Files to the Browser
Q257757 INFO: Considerations for Server-Side Automation of Office
(Excel on
IIS)
Q199841 HOWTO: Display ASP Results Using Excel in IE with MIME Types
Q195951 HOWTO: Query and Update Excel Data Using ADO From ASP


SQL Server/DTS (most recent listed first)
--------------
Q321686 HOW TO: Import Data into SQL Server from Microsoft Excel
(pending)
Q319951 HOW TO: Transfer Data to Excel Using SQL Server DTS
Q306397 INFO: Use Excel with SQL Server Linked Servers and Distributed
Queries
Q306125 HOW TO: Import Data from SQL Server into Microsoft Excel
Q281517 PRB: Transfer of Data from Jet 4.0 OLEDB Source Fails w/ Error
(DTS
& Excel)
Q236605 PRB: DTS Wizard May not Detect Excel Column Type for Mixed Data
Q231880 BUG: Import Wizard Fails if Excel File Open During
Import/Export
Q207446 BUG: Cannot Import Excel 97 Spreadsheet with 256 or More
Columns


XML (most recent listed first)
---
Q319180 HOWTO: Transform Dataset to Spreadsheet XML for Microsoft Excel
Q307021 HOW TO: Transfer XML Data to Microsoft Excel 2002 with VB .NET
Q285891 HOWTO: Use VB or ASP to Create an XML Spreadsheet for Excel
2002
Q278976 HOWTO: Transform Excel XML Spreadsheet for Server-Side Use


ADO within Excel (most recent listed first)
----------------
Q291199 XL2002: "Invalid Use of New Keyword" Error Using ADODB Library
Q263498 BUG: Run-Time Error 5 Using Add Method of QueryTables
Collection
Q244761 XL2000: How to Use ADO to Return Data to a ListBox or ComboBox
Q228633 OFF2000: "Catastrophic Failure" Error Running Samples.xls Macro
Q225059 XL2000: "Invalid Use of New Keyword" Error Using ADODB Library
Q215154 XL2000: Excel does not support OLE DB Data Links

Lesen Sie weiter auf narkive:
Loading...