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^^
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.
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
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
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
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
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
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]
das geht auch, wenn es nicht viele Vokabeln werden. Mit der DB wird es weniger Code.
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. 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.
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
es muss nicht zwingend am Source liegen! Lese Dir mal mein
Posting weiter oben durch.
hab’ ich doch. 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,
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
Ja, den Spaß kenne ich. Deshalb mache ich das nicht gern.
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)
hab’ ich doch. 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,
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. 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
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
Aber wenn man es sich mal richtig ueberlegt, ist es eigentlich normal das VB abschmieren muss, wenn man das Subclassing nicht richtig beendet
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 ?
hab’ ich doch. 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. 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,
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! Mit w-w-w lassen sich meine Problemchen in VB lösen.
Ja, den Spaß kenne ich. 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
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
Aber wenn man es sich mal richtig ueberlegt, ist es eigentlich
normal das VB abschmieren muss, wenn man das Subclassing nicht
richtig beendet
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.
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.