Excel als Datenbank

hi,

wie kann ich excel-tabellen (zweispaltige) als datenquelle für ein visual-basic 6 programm verwenden?
das prog, was ich programmierte ist ein einfachen „frage antwort“ tool, was ich zum auswendiglernen von vokabeln etc. verwende.

hab visual basic erst seit kurzem und verfüge nicht über große programmiererfahrung^^

danke im vorraus

mfg
nick 133

Hallo,

wie kann ich excel-tabellen (zweispaltige) als datenquelle für
ein visual-basic 6 programm verwenden?

das weiß ich leider nicht genau, ich vermute ja, aber etwas umständlich.

das prog, was ich programmierte ist ein einfachen „frage
antwort“ tool, was ich zum auswendiglernen von vokabeln etc.
verwende.

Das klingt nach einer recht einfachen Datenbankanwendung.
In VB6 findest Du im Menü unter ‚Add-Ins‘ den ‚Visual Data Manager‘, der ist dafür da, damit geht es leicht und schnell.
Einfach mal ansehen. Wenn es dabei Probleme gibt, kann ich Dir auch gern eine detaillierte Anleitung tippen, wie Du damit zu Deinem Programm kommst.

Gruß, Rainer

Du kannst ein Excel-Objekt erzeugen (CreateObject) und dann in die Tiefen des Objektmodells von Excel vorstoßen…

Hallo Nick,

und was ist wenn der User kein Excel bei sich installiert hat?
Was ist wenn eine Variable mehrerer Bedeutungen haben kann?

Like - Mögen / Wie

Sicher kannst du das via Excel realisieren, dennoch ist es in meinen Augen etwas umstaendlich! Wie es aber geht, das hast du bereits erfahren :smile:
Am besten finde ich aber, die Variante von Rainer ( Realisierung mit einer DB!)
Alternativ kannst du die Daten auch in ein File schreiben ( *.txt, *.csv etc.) und die dann auslesen :smile:

Welchen Weg du nimmst, das liegt ganz allein Dir! Ich persoenlich finde wie gesagt die Realisierung via DB am besten, da du dort am flexibesten bist :wink:

MfG Alex

Hallo Martin,

wie kann ich excel-tabellen (zweispaltige) als datenquelle für
ein visual-basic 6 programm verwenden?
das prog, was ich programmierte ist ein einfachen „frage
antwort“ tool, was ich zum auswendiglernen von vokabeln etc.
verwende.

hab visual basic erst seit kurzem und verfüge nicht über große
programmiererfahrung^^

du kannst es direkt in Excel z. Bsp. über bedingte Formatierung machen, dazu brauchst du keine Programmierungskenntnisse
Mit ein paar Infos von dir (wo stehen welche Vokabeln und wo willst du eingeben und wie willst du die Info, ob richtig oder falsch, kann ich dir konkret weiterhelfen

Ansonsten (einfach mal nachbauen - verstehen - anpassen):
Annahme:
Spalte A sind die deutschen Bezeichnungen
Spalte B sind die zu lernenden Vokabeln
Spalte C soll die Eingabe erfolgen

der erste Datensatz steht in Zeile 2
Markiere C2, ->Format, ->bedingte Formatierung,
einstellen: , , „=$B2“ eintippen ohne Anführungszeichen, dann Button ->Format… - Reiter Muster, hier eine Farbe für Falsch wählen, z. B. rot
Fenster mit OK schließen
Mit dem Pinsel das Format der Zelle auf die darunter liegenden Zellen übertragen
Spalte B ausblenden

Das wäre eine einfache Möglichkeit
das Beispiel lässt sich beliebig abwandeln

viel Erfolg beim Lernen
Gruß
Marion

danke für die lösungen,
ich werde jetzt wahrscheinlich* eine txt datei nehmen oder die option von visual basic…

*wahrscheinlich deshalb, weil als ich es ausprobieren wollte die fehlermeldung kam: „Visual Basic hat ein Problem festgestellt und muss beendet werden“
werde gleich mal nen virencheck machen, wenn aber jmd weiß, woran das liegen könnte, wär’s nett das auch noch in den artikel zu schreiben

gruß, nick133

Hallo Nick,

das ist das selbe als wenn ich dich fragen würde. Ich fahre einen Mercedes und nun faehrt er nicht mehr. Weisst du was los ist?

Es kann soviele Ursachen haben! Sei es programmiertechnisch oder das es ein Control auslöst!
Ich selber hatte mal ein Datagrid in meinen Project gehabt. Als ich ihr sep. Spalten zugeordnet habe und 1 ! Spalte eine bestimmte Formatierung gegeben habe, so stuerzte mein VB mit der besagten Fehlermeldung ab. Dies trat beim initialisieren des Grids auf.

Es ist rel. schwer den Fehler auf die schliche zu kommen!

Aber lasse dir mal in jeder sub / Function eine MSGBox aufgehen, wo du dir die Sub anzeigen laesst! Wenn nun dein VB abstürzt, so weisst du in welcher sub er als letztes war und du kannst dann dort den Fehler suchen. Zur Not lasse dir jede Zeile in dieser Sub anzeigen ( UEber eine MSGBOX) so kennst du nun die Zeile des Source, welches den Fehler auslöst.

Alternativ baue eine Fehlerroutine. Führe dort eine Zeile des Quelltextest aus! Löse danach den Fehler 13 aus ( Führt nicht zu einem Prog. Absturz) In der Fehlerroutine, rufst du eine Sub auf, was dir sagt. In der Sub und die Zeile wurde ERFOLGREICH ausgeführ. Danach setze den Fehler zurueck und führe die naechste zeile aus etc.
So siehst du auch in welcher zeile der Fehler auftrat! Fehler 13 = zeile erfolgreich . Sprich in der naechsten Zeile ist der Fehler! Wenn du Glueck hast, wird sogar dieser schwerliegende Fehler protokolliert!

Hört sich kompliziert an? ist es nicht .Hier ein kleines Demo!
Form und 2 Buttons -> Command1 und Command2

Option Explicit

Private Sub Command1\_Click()
On Error GoTo fehler
Dim x&
'Sinnlose Anweisung-\> Hier ersetzen mit deinen Anweisungen!
'Bedenke das err.raise 13 die protokollierung auslöst
'Sprich nach jeder Zeile schreiben. Du kannst natuerlich jeden anderen Fehler auslösen!
10 x = x: Err.Raise 13
20 x = x + 1: Err.Raise 13
30 Exit Sub
fehler:
 Call ErrHandling("Command1\_Click", Erl)
 Err.Clear
 Resume Next
End Sub

Private Sub Command2\_Click()
On Error GoTo fehler
Dim z&
'Sinnlose Anweisung-\> Hier ersetzen mit deinen Anweisungen!
'Bedenke das err.raise 13 die protokollierung auslöst
'Sprich nach jeder Zeile schreiben. Du kannst natuerlich jeden anderen Fehler auslösen!
10 z = z: Err.Raise 13
20 z = z + 1: Err.Raise 13
30 Exit Sub
fehler:
 Call ErrHandling("Command1\_Click", Erl)
 Err.Clear
 Resume Next
End Sub

Private Sub Form\_Load()
On Error GoTo fehler
Dim y&
'Sinnlose Anweisung-\> Hier ersetzen mit deinen Anweisungen!
'Bedenke das err.raise 13 die protokollierung auslöst
'Sprich nach jeder Zeile schreiben. Du kannst natuerlich jeden anderen Fehler auslösen!
10 y = y: Err.Raise 13
20 y = y + 1: Err.Raise 13
30 Exit Sub
fehler:
 Call ErrHandling("Form\_Load", Erl)
 Err.Clear
 Resume Next
End Sub

Private Sub ErrHandling(Prozedure As String, Zeile As Long)
Dim FNr As Byte
FNr = FreeFile
Open "DeinFile" For Append As #FNr
Print #FNr, "Von der Procedure / Function " & Prozedure & " wurde die Zeile " & Zeile & " erfolgreich ausgefuehrt!"
Close #FNr
End Sub

Probiere das mal aus. Mit etwas Glueck siehst du den Fehler dort schon! Ansonsten wird es komplizierter den Fehler zu suchen!

MfG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

ich werde jetzt wahrscheinlich* eine txt datei

das geht auch, wenn es nicht viele Vokabeln werden. Mit der DB wird es weniger Code. :smile:

nehmen oder die option von visual basic…

*wahrscheinlich deshalb, weil als ich es ausprobieren wollte
die fehlermeldung kam: „Visual Basic hat ein Problem
festgestellt und muss beendet werden“

Dann hast Du wohl einen heftigen Fehler gemacht. Ich kenne die Meldung nicht, mir erzählt VB immer genauer, was ich falsch gemacht habe und nur das Projekt stürzt ab. Außer ich arbeite mit Subclassing, dann bekomme ich beim Absturz aber auch keine Meldung. :smile: Subclassing ist aber auch ein Thema, mit dem Du dich die nächsten zwei Jahre noch nicht beschäftigen brauchst.

werde gleich mal nen virencheck machen, wenn aber jmd weiß,
woran das liegen könnte, wär’s nett das auch noch in den
artikel zu schreiben

Dafür genügen die Informationen nicht, wir wissen ja noch nicht mal, was Du wie versucht hast.

Gruß, Rainer

Hallo Rainer,

es muss nicht zwingend am Source liegen! Lese Dir mal mein Posting weiter oben durch. Dort habe ich mal ein Phänomen beschrieben, was mir wiederfahren ist! Unter VB lief alles anstaendig ohne Fehler. Jedoch compiliert als EXE habe ich den besagten Fehler damals erhalten und nach ca. 2 1/2 Wochen intensiver Suche bin ich drauf gekommen, was es war :s

Das es am SubClassing bei ihm liegt, das glaube ich nicht. Alldiweil die Fehlermeldung die er bekommt. Also das VB beendet werden muss, deutet nicht auf einen „Fehler“ (SubClassing nicht beendet) hin. Dann schmiert VB ab ohne eine Meldung. Das Leid kennst du ja bereits :wink:

MfG Alex

Hi Anno,

es muss nicht zwingend am Source liegen! Lese Dir mal mein
Posting weiter oben durch.

hab’ ich doch. :smile: Ich habe verstanden, Du hast ein Datagrid verwendet, dann an der DB etwas verändert und … crash.

Dort habe ich mal ein Phänomen
beschrieben, was mir wiederfahren ist! Unter VB lief alles
anstaendig ohne Fehler. Jedoch compiliert als EXE habe ich den
besagten Fehler damals erhalten und nach ca. 2 1/2 Wochen
intensiver Suche bin ich drauf gekommen, was es war :s

Schon seltsam, ich habe die Meldung noch nicht gesehen. Ist auch gut so, :smile:

Das es am SubClassing bei ihm liegt, das glaube ich nicht.
Alldiweil die Fehlermeldung die er bekommt. Also das VB
beendet werden muss, deutet nicht auf einen „Fehler“
(SubClassing nicht beendet) hin. Dann schmiert VB ab ohne eine
Meldung. Das Leid kennst du ja bereits :wink:

Ja, den Spaß kenne ich. :smile: Deshalb mache ich das nicht gern.

Gruß, Rainer

die fehlermeldung ist nicht auf mein projekt, sondern (so denke ich)
auf irgendeine einstellung im system zurückzuführen.

bei allen projekten( auch bei älteren stürzt er ab)
z.B wenn ich strg +c drücke oder auch, wenn ich nur ein projekt öffne kann die fehlermeldung kommen.

ich hab meine VB 6 enterprise version auf eine andere festplatte neuinstalliert; ohne erfolg

spybot hat nix gefunden und AVG antivir läuft noch.
alle änderungen von TuneUps 2007 hab ich rückgängig gemacht.

mit dem fehlerbericht kann ich nix anfangen(man kann nicht einmal die schrift markiern und kopieren)

ich hoffe auf AVG, dass das noch iwas findet

Hi Anno,

Hi Rainer,

hab’ ich doch. :smile: Ich habe verstanden, Du hast ein datagrid
verwendet, dann an der DB etwas verändert und … crash.

Nein :s
Ich habe ein Datagrid. Dazu eine Db wo der Zugrif via ADO stattfindet.
In den Eigenschaften vom Grid habe ich einfach neue Coloumns eingetragen! Es waren glaube 8 oder 9 Spalten. Danach habe ich der Spalte 6 oder 7, die Daten enthalten kann vom Typ Boolean, einfach gesagt True = Ja und False = Nein.

Genau, in dem Moment als ich Load Formname (Die Form mit dem Grid) aufgerufen habe, schmierte mir VB ab! Dazu ist es noch nicht einmal gekommen das ich die DB an das Grid gebunden habe!
Warum das passiert ist, weiss ich nicht. Ich habe dann eine andere Lösung gefunden, die das erledigt. Das war dann der Kummer sein kleinster. Aber komme erst einmal darauf das das Grid den Fehler verursacht hat :s

Schon seltsam, ich habe die Meldung noch nicht gesehen. Ist
auch gut so, :smile:

Sei froh. Sowas kostet arge Nerven und Zeit! Von Vorteil ist es wenn es jemanden gibt dem schon einmal so etwas wiederfahren ist und der dir sagen kann. Schaue mal hier oder hier nach, wenn du im Step by Step Modus nichts siehst!

Ja, den Spaß kenne ich. :smile: Deshalb mache ich das
nicht gern.

Och naja man gewöhnt sich daran. Man tippselt es einmal und dann volla klappt es ja. Im Debug Modus kannst du ja fix das Subclassing dann abschalten oder vorm beenden des proggs das Subclassing beenden, dann sollte der Fehler auch nicht mehr auftreten :wink:
Du brauchst es ja vom Prinzip her nur einmal zu testen um zu sehen ob die nachrichten ordentlich abgefragt werden. Dann schwups gleich weiterleiten und aus die Maus :wink:

Aber wenn man es sich mal richtig ueberlegt, ist es eigentlich normal das VB abschmieren muss, wenn man das Subclassing nicht richtig beendet :wink:

Gruß, Rainer

Gruessle Alex

Hallo Nick,

hmm dann koennte es andem liegen! Tritt der Fehler nur auf wenn das File compiliert ist oder auch unter VB ?
Hast du mal HIJackThis drueber laufen lassen? Was sagt denn der Report aus? Hast du sonstige andere Phänomene auf deinem Rechner? Also das das System lahmt ? Hast du mal dein System auf ein anderes Datum zurueckgestellt ?

MfG Alex

Hallo Alex,

hab’ ich doch. :smile: Ich habe verstanden, Du hast ein datagrid
verwendet, dann an der DB etwas verändert und … crash.

Nein :s
Ich habe ein Datagrid. Dazu eine Db wo der Zugrif via ADO
stattfindet.
In den Eigenschaften vom Grid habe ich einfach neue Coloumns
eingetragen! Es waren glaube 8 oder 9 Spalten. Danach habe ich
der Spalte 6 oder 7, die Daten enthalten kann vom Typ Boolean,
einfach gesagt True = Ja und False = Nein.

Genau, in dem Moment als ich Load Formname (Die Form mit dem
Grid) aufgerufen habe, schmierte mir VB ab! Dazu ist es noch
nicht einmal gekommen das ich die DB an das Grid gebunden
habe!
Warum das passiert ist, weiss ich nicht. Ich habe dann eine
andere Lösung gefunden, die das erledigt. Das war dann der
Kummer sein kleinster. Aber komme erst einmal darauf das das
Grid den Fehler verursacht hat :s

Das Datagrid macht noch mehr Unfug. Ich hatte bei einem der ersten Tests einen Grafik-Fehler, der mir nicht gefallen hat. Danach habe ich das Datagrid nicht wieder für eigene Projekte angefasst. :smile: Durch fremde Projekte sind mir aber noch mehr Bugs im Datagrid aufgefallen, das ist einfach zu Fehlerhaft um es zu verwenden.

Schon seltsam, ich habe die Meldung noch nicht gesehen. Ist
auch gut so, :smile:

Sei froh. Sowas kostet arge Nerven und Zeit! Von Vorteil ist
es wenn es jemanden gibt dem schon einmal so etwas
wiederfahren ist und der dir sagen kann. Schaue mal hier oder
hier nach, wenn du im Step by Step Modus nichts siehst!

Hab’ ich doch! :smile: Mit w-w-w lassen sich meine Problemchen in VB lösen.

Ja, den Spaß kenne ich. :smile: Deshalb mache ich das
nicht gern.

Och naja man gewöhnt sich daran. Man tippselt es einmal und
dann volla klappt es ja. Im Debug Modus kannst du ja fix das
Subclassing dann abschalten oder vorm beenden des proggs das
Subclassing beenden, dann sollte der Fehler auch nicht mehr
auftreten :wink:
Du brauchst es ja vom Prinzip her nur einmal zu testen um zu
sehen ob die nachrichten ordentlich abgefragt werden. Dann
schwups gleich weiterleiten und aus die Maus :wink:

Aber wenn man es sich mal richtig ueberlegt, ist es eigentlich
normal das VB abschmieren muss, wenn man das Subclassing nicht
richtig beendet :wink:

Ja, klar. Die Übung fehlt mir halt und wenn ich dann doch mal etwas damit mache ärgere ich mich eben, wenn mir die IDE wegen einem simplen Tippfehler abschmiert. Aber so ein Projekt habe ich z.Z. weder in Arbeit noch in Planung.

Gruß, Rainer

das system läuft dank spybot und tuneups einwandfrei und auch ralativ schnell.

hijackthis, kenn ich gar nicht, lade ich aber gleich runter (sofern das freeware ist)

meinst du mit der systemdatum einfach das fenster, was sich öffnet, wenn man auf die uhr unten rechts doppelklickt?

die kompilierten programme laufen als .exe, VB selbst stürzt aber ab.
ich komme ja nicht einmal dazu ein Prog zu erstellen, gescheige denn zu kompilieren, weil stets die fehlermeldung kommt.