vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Ja, hab ich! 
Autor: unbekannt
Datum: 16.02.02 11:44

Hi Nico,

da mal ein Beispiel:

<code><font color=#000099>Private</font> xLDB <font color=#000099>As</font> _
  Database
<font color=#000099>Private</font> xRs <font color=#000099>As</font> Recordset
 
'*************** Funktion: FindCells() ****************
'Parameter: sWBName = Pfad_Name des Excel Workbooks
'Parameter: sFind = SQL <font color=#000099>String</font> ab der Where Klausel
'Parameter: sTabName = Tabellenname
'Rückgabe : Variant, ein 2D-Array (Feld, Zeile)
 
 
<font color=#000099>Private</font> <font color=#000099>Function</font> _
  FindCells(Byval sWBName <font color=#000099>As</font> <font _
  color=#000099>String</font>, _
                           Byval sFind <font color=#000099>As</font> Variant, _
                           Byval sTabName <font color=#000099>As</font> <font _
                           color=#000099>String</font>) <font _
                           color=#000099>As</font> Variant
 
   <font color=#000099>Dim</font> RsFind <font color=#000099>As</font> Recordset
 
   'Öffnen der ISAM-Datenquelle
   <font color=#000099>On</font> <font color=#000099>Error</font> Resume <font _
     color=#000099>Next</font>
   <font color=#000099>Set</font> xLDB = DBEngine.OpenDataBase(sWBName, <font _
   color=#000099>False</font>, <font color=#000099>False</font>, _
                                  "Excel 8.0;")
 
   <font color=#000099>If</font> Err.Number > 0 <font color=#000099>Then</font>
      'Dateifehler oder ISAM-Fehler!
      FindCells = Err.Number
      Msgbox "Fehler beim Öffnen der Isamdatenquelle.", _
             vbExclamation, "FindCells - Fehler:"
      <font color=#000099>Exit</font> <font color=#000099>Function</font>
   <font color=#000099>End</font> <font color=#000099>If</font>
 
   <font color=#000099>Set</font> xRS = xLDB.OpenRecordSet(sTabName & "$", _
     dbOpenDynaset)
   <font color=#000099>If</font> Err.Number > 0 <font color=#000099>Then</font>
      FindCells = Err.Number
      xLDB.<font color=#000099>Close</font>
      MsgBox "Fehler beim Öffnen der ExcelTabelle.", _
             vbExclamation, "FindCells - Fehler:"
      <font color=#000099>Exit</font> <font color=#000099>Function</font>
   <font color=#000099>End</font> <font color=#000099>If</font>
 
   <font color=#000099>If</font> sFind<>"" <font color=#000099>Then</font>
      xRS.Filter = sFind
      <font color=#000099>Set</font> RsFind = xRS.OpenRecordSet(dbOpenDynaset)
   <font color=#000099>Else</font>
      <font color=#000099>Set</font> RsFind = xRS.Clone
   <font color=#000099>End</font> <font color=#000099>If</font>
 
   <font color=#000099>If</font> RsFind.EOF <font color=#000099>Then</font>
       FindCells = 0
       xRS.<font color=#000099>Close</font>
       <font color=#000099>Set</font> xRS = <font color=#000099>Nothing</font>
       xLDB.<font color=#000099>Close</font>
       <font color=#000099>Exit</font> <font color=#000099>Function</font>
   <font color=#000099>End</font> <font color=#000099>If</font>
 
   'Suchergebnis übergeben:
   <font color=#000099>With</font> RsFind
     .MoveLast
     .MoveFirst
     FindCells = RsFind.GetRows(.Recordcount)
   <font color=#000099>End</font> <font color=#000099>With</font>
 
   'Aufräumen:
   RsFind.<font color=#000099>Close</font>
   <font color=#000099>Set</font> RsFind = <font color=#000099>Nothing</font>
   xRS.<font color=#000099>Close</font>
   <font color=#000099>Set</font> xRS = <font color=#000099>Nothing</font>
   xLDB.<font color=#000099>Close</font>
 
<font color=#000099>End</font> <font color=#000099>Function</font>
</code>
Der Rückgabewert ist ein Array, in dem die Spalten und Zeilen enthalten sind, die
die Filter-Funktion des Recordsets erbrachte oder im Fall eines Übergebenen 0 Strings, also vbNullChar, die komplette Tabelle. Man muß beachten, dass wenn in der Excel-Tabelle keine Spaltenköpfe definiert wurden, alle Felder mit F1, F2, F3 u.s.w. fortgezählt werden. Voraussetzung für ISAM ist aber, dass über den ODBCAd32-Manager (Systemsteuerung) ein Treiber für Excel-Dateien eingefügt ist und zumindest eine Benutzer DSN vorhanden ist. Ansonsten Error: Installierbares Isam konnte nicht gefunden werden!. Weiter ist zu beachten, dass unter ISAM die Zellenwerte zwar verändert, aber nicht gelöscht oder hinzugefügt werden können. Das wird i.d.Hauptsache dazu verwendet, sich 'geschwind eine Exceltabelle ins Projekt zu klemmen und über den Variant etwas zu bearbeiten, ist schneller, als Excel zu öffnen, dann die Tabelle.

cu
Lordchen
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wie öffne ich eine Excel-Datenbank???87Niko00616.02.02 01:20
Re: Wie öffne ich eine Excel-Datenbank???61Niko00616.02.02 01:29
Re: Wie öffne ich eine Excel-Datenbank???56Moni16.02.02 11:06
Ja, hab ich!125Niko00616.02.02 11:15
Re: Ja, hab ich!335unbekannt16.02.02 11:44
es geht doch...55Niko00616.02.02 14:12

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel