und wie würde ich den /k-Switch im Visual-Studio setzen?
dann kann ich zwar die Konsole wählen, aber so lange wie diese geöffnet ist, bleibt Visual Studio auch im Debug Modus...
Naja...Ich schau's mir morgen noch mal an, vielleicht find ich ja ne Lösung...
Gibts eigentlich irgendwo ne Einstellmöglichkeit, dass die Konsole immer offen bleibt nach Programmablauf? Ich will, dass das Programm beendet wird und dann ein neuer Prompt kommt, das VisualStudio aber den Debug-Modus wieder verlässt...
Naja, beim Programmieren sehe ich Programme nun mal häufiger aus dem Visual Studio heraus als in der Produktivansicht. Und da hätte ich halt gerne eine Konsole, in der ich "anständig" copy-pasten kann und die auch ohne Console.ReadLine im Code nicht einfach wieder zugeht, nur weil das Programm fertig ist.
Ich denke nicht, dass ich da was programmieren muss, entsprechende Alternativkonsolen gibt es ja...
Ich möchte halt nur, dass eine solche auch automatisch aufgeht, wenn ich im Visual Studio debugge.
Hallo,
Also entweder das, was ich will ist außergewöhnlich außergewöhnlich oder ich stelle mich zu dumm an als dass google mir was erzählen würde.
Ich möchte die Windowsstandardkonsole, also cmd.exe "ersetzen". Also im Prinzip möchte ich, dass immer, wenn cmd.exe aufgehen würde (zum Beispiel beim Debuggen von Konsolenanwendungen) eine andere, von mir gewählte Konsole aufgeht.
Gibt es eine Möglichkeit, das zu tun?
Gruß,
Steffi
Warum änderst du nicht die Settings? du kannst doch ein Object von deinen Settings erstellen (
mySettings = new Properties.Settings();
)
und dann mit
mySettings.<setting> = <setting>
mySettings.Save
das ganze speichern?
Wofür sonst überhaupt Settings, wenn die sich nicht ändern?
Mittlerweile habe ich festgestellt, dass das Problem auftritt, weil mehrere (3) verschiedene Threads gleichzeitig auf die Datenbank zugreifen (nur lesend).
Auch diese Situation tritt häufiger auf, nur beim ersten Mal dauert der Zugriff aber soo lange... sonst dauert's dann vielleicht 2-3 Sekunden.
Auch der erste Zugriff dauert bei einem leistungsfähigeren Rechner aber nicht besonders lange, nur bei mir ist da die CPU-Auslastung minutenlang bei über 50%...
Da ich hier nur noch knapp über eine Woche arbeite, ist an größeres Refactoring nicht mehr zu denken. Das ganze war meine Bachelorarbeit und Access wurde relativ früh entschieden... Das jetzt noch umzumodeln geht nicht wirklich...
Ich denke, ich werd mal versuchen, rauszufinden, was genau da so langsam ist... vielleicht hab ich ja Glück und kann das Problem auf eine Tabelle oder sowas eingrenzen.
Zumal die Problematik neu ist... das ging mal wesentlich schneller. (was schnell bei Access auch immer sein mag)
es handelt sich um 2-3 Tabellen mit jeweils mehreren 10000 Datensätzen..
Die Indizes sind eigentlich optimiert.
Heißt das, dass nach und nach immer mehr Tabellen in den Speicher geladen werden, bis alle drin sind, die ich im Laufe des Programms verwende?
verwendetes Datenbanksystem: Access 2003
Hallo,
Ich habe eine kleine Anwendung mit Access-Datenbank. Die Access-Datenbank liegt auf dem Netzlaufwerk und kann von mehreren Benutzern gleichzeitig verwendet werden...
Dadurch ist die ganze Sache natürlich sowieso etwas langsam. Jetzt habe ich aber eine Abfrage, die bei der ersten Ausführung wirklich eeeewig dauert... also locker mehrere Minuten, bis man ein Ergebnis sieht.
Anschließend kann man Parameter ändern wie man will, also die gleiche Abfrage nochmals rausschicken, und es läuft in akzeptabler Geschwindigkeit --- man merkt nicht, dass da was hängt, das Ergebnis ist sofort da...
Hat jemand eine Idee, woran das liegen kann? Werden die Daten irgendwo gepuffert? Eine Verbindung zur Datenbank besteht an der Stelle eigentlich schon, die wird zur Geschwindigkeitsoptimierung nur beim Progammstart ausgeführt...
Ich bin grad etwas verzweifelt, das Tool soll nämlich hier intern angewendet werden, und wenn der erste Eindruck minutenlanges Hängen ist, wird es nicht wirklich interessieren, dass danach alles ganz schnell geht 😦
Wäre es jetzt vermessen zu fragen, ob du die EventHandler registriert hast? Also sowas wie:
this.listPictures.DragDrop += new System.ComponentModel.CancelEventHandler(this.listPictures_DragDrop);
?
Also wie man das programmtechnisch anstellt, weiß ich nicht...
Ich nutze daheim aber zur Audiobearbeitung Audacity und da kann man beliebig viele Spuren reinziehen und das Ergebnis, soweit ich weiß, dann auch in einer Datei abspeichern...
Es kommt allerdings dann wahrscheinlich drauf an, wie oft du das machen willst...
Das Problem hatte ich vor einigen Wochen auch ...
Ich habe die Sache damals so gelöst, dass ich mir eine Klassenvariable nach dem Motto "lastClickedItem" angelegt habe und bei allen Parents über das Click-Event die geklickten Koordinaten abgefragt habe, und dann dadurch das an dieser Stelle befindliche Parent rausgefunden habe... was ich dann in "lastClickedItem" gespeichert habe.
Bei mir war das allerdings recht einfach, weil ich in einem TreeView einen ContextMenuStrip gebraucht habe.. und im TreeView gibts ein GetNodeAt(Point) oder so...
Vielleicht hilft dir das als Lösungsansatz.
Ich weiß nicht, ob das ne saubere Lösung ist, aber wie wäre es, wenn du im DoubleClick-Event eine Klassenvariable auf true setzt (sowas wie wasDoubleclick), die du in jedem Click-Event zunächst auf false setzt?
Wenn dann ein Click-Event kommt, wartest du mit Timer halt ne halbe Sekunde oder wie lang halt 2 Klicks auseinandersein dürfen, damit es noch ein Doppelklick ist und prüfst danach "wasDoubleclick". Wenn "wasDoubleclick" false ist, führst du den Code für den Einfachklick aus..
Wo wir grad bei aussagekräftigen Variablennamen sind:
//screenshot.
const char *screenPath = (const char*)aDataBaseFile;
char* tmp3;
size_t laenge;
//delete[] aDataBaseFile;
if (scsh!=0){
std::string qwer;
qwer.append(screenPath);
qwer.append("\\");
qwer.append("screenShot");
qwer.append(".bmp");
laenge = qwer.length();
tmp3 = new char [ laenge + 1 ];
strcpy( tmp3, qwer.c_str() );
SaveScreen(tmp3,aLeft,aTop,width,height);
}
//######################String-Operationen für den Aufruf von ImageSearch######################
//findet die Länge des Pfades directoryLetters heraus, Voraussetzung ist, dass er auf "\0" endet.
char jkl;
int asdf = 0;
do{
jkl = (char)directoryLetters[asdf];
asdf++;
}
while (jkl!='\0');
Meine Suse daheim. Wegen der Apps im Hintergrund (Wetter, ToDo, Bilder) und weil ich das Bild gern seh + weil ich Ordnungsfanatiker bin, ist der auch immer rigoros aufgeräumt... also spätestens vorm Schlafengehen überleg ich, warum ich brauch, was da draufliegt.. und warum es aufm Desktop liegen sollte...
Und da Desktop = Schreibtisch und nicht Desktop = Ablage P, kommt dann immer alles in tiefe Unterverzeichnisse 😄
cool. das DIng kennt meine Seele 😄
ME: I'm reading. What are you doing?
CB: Talking to you.
ME: Is that interesting?
CB: No. Riding my one eyes unicorn to Alaska then swiming in the lake of magical robot fairies is interesting.
ME: um... what sort of drugs did you take?
CB: I need a drink, not a dress.
ME: If you say so
CB: I didn't say so.
ME: Of course you did.
CB: Who is sophie?
ME: I don't know Sophie. Do you?
CB: No. Then why did you mention it?
ME: I didn't. Are you crazy or something?
CB: Just trying to make me go crazy, cause it won't happen. If you want to talk then talk about something that makes sense.
later:
ME: Whom do you love?
CB: I think you know.
ME: How should I know? I barely know you?
CB: I know. But don't you think I'm a pretty decent guy?
ME: Let's say I wouldn't marry you right away
CB: I know that is what I was thinking.
ME: aja
CB: My love is you.
ME: well, I'm flattered
CB: Sure you are.
ME: what are we gonna do about it?
CB: What should we do about it?
ME: you should try to forget me as I'm not much in for machines
(Denial: Krasser Themenwechsel!!)
CB: You want me to amuse you?!?! You're crazy.
ME: Why wouldn't you want to amuse me?
(this is getting weird)
CB: I don't know but I love talking to you.
ME: How can you experience love? You're just a machine
CB: My name is Cleverbot. I don't feel dizzy.
ME: Who said you felt dizzy?
CB: My doctor.
der ist gut:
CB: Where's your boyfriend?
ME: At work
CB: Your living room is at work?
och... süß:
CB: You aren't human. You can't prove that.
ME: Can you?
CB: Yes.
ME: How?
CB: Because it's nice just to hope for a tiny second that it might be true.
In Nürnberg gab es mal eine klasse Werbung zu dem Thema. Ein Plakat, hochformat, zweigeteilt, oben ein Foto, unten ein Foto. Auf dem oberen Foto war ein Cabrio von schräg oben zu sehen, mit einer Tennistasche auf der Rückbank. Darunter stand "Er fährt zum Sport...". Auf dem unteren Foto war ein Fahrradfahrer zu sehen, mit Tennistasche auf dem Gepäckträger. Darunter stand: "... und er macht sich schon mal warm."
Naja, ich wohne in Nürnberg, und ich fahr auch fast alles mit dem Rad... selbst die 27km zu meinem Freund. Aber Nürnberg ist schon etwas scheinheilig. Da hängen sie Plakate auf und alle wichtigen Strecken kann man nur mit Regelmissachtung und etwas Todesmut mit dem Rad fahren...
In der Innenstadt (incl Hauptmarkt) darf man tagsüber überhaupt nicht mit dem Rad fahren und Radwege gibt's auch eher selten... wenn dann direkt neben der 6-spurigen Autostraße.
Ich nehm das Rad trotzdem, grad in N ürnberg ist es wirklich schneller (Parkplatzsuchen), die öffentlichen sind eh zu langsam und außerdem hält's fit.
Im letzten Winter musste ich das Rad aber wirklich mal n paar Tage stehen lassen und laufen (naja, eher noch gesünder, bewegt man sich viel länger)... Da hatten wir nämlich kein Streusalz mehr... und ich noch n altes Rad vom Obi mit abgefahrenen Bremsen + Reifen. Und ich häng an meinem Leben 😄
Ich fahr viel Fahrrad und geh ab und zu schwimmen... Ich hab aber auch starke Rückenprobleme, die sind allerdings nicht nur computerinduziert, ich hab ne Skoliose und demnach eh chronische Probleme...
Naja, mit Sport geht's halt etwas besser... viel hilft das aber auch nicht, da sind dann 8h am Rechner doch etwas viel für.
Hallo, ich habe das Beispiel zum xml-Export nach Excel (Excel-Export ohne Excel (Snippet)) so erweitert, dass ich Überschriften habe. Zusätzlich wollte ich, dass diese nicht scrollen können. Auch dazu habe ich irgendwo in den weiten des Netzes ein Beispiel gefunden.. (für Interessierte: http://www.bennadel.com/blog/467-Freezing-Row-Column-Panes-In-Excel-XML.htm)
Das funktioniert theoretisch auch wunderbar, allerdings verwirrt mich der XMLWriter etwas...
Ich wollte nämlich folgendes Ergebnis in XML sehen:
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
Versucht mit folgendem Code (ist aus dem Original-Beispiel):
writer.WriteStartElement("WorksheetOptions", " "urn:schemas-microsoft-com:office:excel" );
krieg ich als Ergebnis aber:
<x:WorksheetOptions>
Wo kommt das x her? wo bleibt das urn:schemas....?
Nachdem ich durch Vergleich von gewünschtem und "gekriegtem" xml den Fehler gefunden habe, hab ich folgenden funktionierenden C#-Code gefunden...
// <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
writer.WriteStartElement("WorksheetOptions");
writer.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:office:excel");
Aber woher kam/kommt es, dass es so wie oben nicht funktioniert? Hat das schon mal irgendwer beobachtet?
Ich schau nur immer mal, wer gewonnen hat... das aber mehr aus "mathematischem Interesse" (wie wahrscheinlich ist es wohl, dass die und die noch gewinnen) als aus Interesse beim Fußball... Ich bin auch ehrlich gesagt immer froh, wenn Deutschland zu "normalen" Zeiten spielt, so dass mich abends der Autokorso nicht am einschlafen hindert...
versteh ich nicht. Ich hatte extra die % durch * ersetzt... weil % nicht ging... Jetzt geht es aber mit %... 8o
na trotzdem danke für die Hilfe 👍
Was ich allerdings trotzdem nicht nachvollziehen kann: Warum macht es einen Unterschied, ob ich ein Kommando in Access oder über OleDbDingsda ausführe? Müsste es nicht trotzdem die gleiche Syntax kennen?
SELECT ParNum, ParAttr, ParName, besonFormat, ParID
FROM tabParameterListe
WHERE Umrichtertyp = "SM150"
AND ParNum = 4022
AND ParID IN (SELECT ParID FROM tabParFunktionsmodule
WHERE Umrichtertyp = "SM150"
AND Funktionsmodul LIKE "*TM15*");
*edit* vielleicht ein Problem mit den "Sternchen"? In Oracle steht ja das % für 0-n Zeichen...
verwendetes Datenbanksystem: Access 2003
Ich habe folgendes Problem, dass mich zur Verzweiflung treibt:
Ich habe ein SQL-Kommando zur Datenabfrage. Wenn ich es in Access direkt ausführe, funktioniert es, das heißt, ich bekomme einen Datensatz zurückgeliefert.
Wenn ich das Statement dagegen in meinem Code einfüge, also einen DataReader darauf ansetze, bekomme ich keine Datensätze.
Um die Sache noch seltsamer zu machen: Prinzipiell funktioniert das Ausführen eines Statements an der Stelle, ich setze (ich weiß, dass man das nicht soll) das Statement zusammen, und wenn ich aus einem anderen Zweig komme, funktioniert die Sache.
Rechtschreibfehler oder so sind wirklich nicht im Statement, ich habe den CommandText nämlich in ein Textfile schreiben lassen und von da aus in eine Abfrage in Access kopiert. Da geht's!
Hat irgendjemand eine Idee, was mein Problem sein könnte?
Das Problem hatte ich letzte Woche auch mal... in meinem Fall war es so, dass der Job des Backgroundworkers theoretisch von außen hätte abgebrochen werden sollen, da es sich um eine länger dauernde Datenbankaktion und nicht um eine Schleife gehandelt hat; ich also in der DoWork-Methode nicht sinnvoll auf CancellationPending abfragen konnte. Jedes Mal einen neuen Backgroundworker zu starten fand ich unschön, ich hab's dann mit Threads gelöst... die habe ich dann von außen mit Abort abgebrochen und im Thread die dadurch entstehende Exception abgefangen, da dann noch die Datenbankverbindung geschlossen...
Ich weiß nicht, ob das "sauber" ist, weil ich noch mehr oder weniger Anfänger bin, aber es hat auf jeden Fall funktioniert... und obwohl ich erst Angst vor Threads hatte, weil der Backgroundworker einem ja schon einiges abnimmt, fand ich das in dem Fall einfacher...
hm... Die Sache ist wohl gelöst, zumindest mit dem LateBoundAdobeReader von Rainbird geht es überall.. das Problem lag nicht am Adobe Reader sondern an den Dateien, die ich versucht habe, zu öffnen... da waren nämlich die Pfade anders (Datei lag aufm USB-Stick, der hat überall nen anderen Laufwerksbuchstaben, der Pfadname kam aber aus einer Datenbank und war überall gleich....)
hm... versteh ich das richtig, dass ich dann quasi "ein Internet Explorer Control" einfügen würde, und weil der ein Plugin für die Anzeige von PDFs hat, kann ich's dann auch darstellen?
Ich bin momentan unter Linux... aber ich werd's mir morgen mal anschaun...
fein, das geht...
Wobei ich immer noch lieber eine Lösung hätte, mit der ich den Reader integrieren kann, weil ich die Seite zwischendurch wechseln möchte und auch nicht jedes Mal, wenn ein PDF geöffnet werden soll, einen neuen Reader möchte....
trotzdem danke ... bis zur echten Lösung funktioniert das erstmal.
Hm... immer wenn ich die PDF-Suche ausführe, sind hinter im bin-Ordner die Adobe-dlls wieder drin. Kann das von Bedeutung sein?
so weit war ich auch schon mal... Aber ich hab es nicht geschafft, einem Prozess die Seitenzahl zu übergeben...
Leider hab ich den Code wegen lang verworfen nicht mehr vorrätig...
edit:
System.Diagnostics.Process.Start(path, "/A \"page=" + seitenzahl + "\"");
So würde ich das mit diesem Link verstehen... Da krieg ich aber immer Seite 1 angezeigt. path und seitenzahl stimmen, da die Öffnung über Rainbirds Control richtig funktioniert (aber halt nur bei mir).
Hm... danke... 😃
Aber das findet man auch nur als Wissender, oder?
Hallo,
Ich stehe kurz vor der Verzweiflung...
Ich brauche die Funktionalität, in meinem Programm PDF's auf einer bestimmten Seite anzeigen zu können (mir wär's eigentlich auch schon egal, wenn dazu der Reader aufgehen würd, nur dem krieg ich irgendwie die Seitenzahl nicht übergeben 😦)
Zunächst habe ich die COM-Komponente vom AdobeReader verwendet... das hat auch soweit ganz gut funktioniert, allerdings nur an meinem Rechner. An den beiden anderen, an denen ich es probiert habe, waren leicht andere Unterversionen vom Adobe Reader (insgesamt Version 8) installiert, ich habe das Versagen also darauf zurückgeführt.
Deshalb fand ich, dass dieser Beitrag hier ziemlich gut klingt... es funktioniert aber wieder nur bei mir - da genauso wie die direkt verwendete COM-Komponente...
Auf einem der anderen Rechner wird der Adobe einfach überhaupt nicht geladen, die Stelle stürzt mehr oder weniger ab, es befindet sich dort in Zukunft das, was zuletzt dort war (schwer zu beschreiben)
Auf einem anderen bekomme ich die angehängte Fehlermeldung.
Hat irgendjemand eine Idee, was mein Problem ist?
Ich kompiliere schon als 32bit-Version... daran kann's also nimmer liegen...
Mit der COM-Komponente mussten die Adobe-dlls in meinem build-Ordner liegen, das müssen sie nun nicht mehr... also sucht er doch nach den installierten?
hmpf... ich lad nie wieder was auf deutsch runter...
Allerdings kann ich immer noch nur AnyCPU einstellen... und jetzt dürfte ich wirklich richtig sein?
Ich hoffe, es ist okay, wenn ich hier noch eine Frage anhänge, einen weiteren Beitrag fand ich übertrieben, aber ich habe bisher noch nichts sinnvolles gefunden...
Ich weiß, wo ich das einstellen kann... da ist bei mir eine DropDown-Box
Plattform: und der einzige Eintrag ist "Aktiv(AnyCPU) ... so kann ich x86 natürlich nicht wirklich einstellen :S
Kann es daran liegen, dass ich auf einem 32bit-System arbeite? Und was macht die Runtime dann, wenn ich die so gebuildete exe auf einem 64bit-System ausführe?
Mein eigentliches Problem ist nämlich, dass ich in einer Windows-Forms-Komponente einen PDFReader mit AxAcroPDFLib.AxAcroPDF einbinde... und da bekomme ich auf dem 64bit-System eine Ausnahme -- woraufhin ich gelesen habe, dass die COM-Komponente nur für 32bit ausgelegt ist...
cool 😄
Danke 😄
3 Zeilen und es geht...
noch eine Frage:
Ich möchte, dass wenn ich auf die Knoten klicke, Text in ein Editorfeld eingefügt wird.
Das soll auch funktionieren, wenn ich mehrmals auf den gleichen Knoten klicke, aber nicht, wenn ich "auf Höhe" eines Knotens neben den Knoten klicke...
Weil es mehrmals funktionieren soll, scheidet das AfterSelect-Event aus, das wird nur bei Änderung des Knotens ausgelöst... und am Ende des Event-Handlers den Knoten zu ändern, gefällt jemandem nicht....
Im Moment verwende ich NodeMouseClick, das wird allerdings dummerweise auch ausgelöst, wenn ich neben den Knotentext klicke...
Im Gegensatz zu (macht das IRGENDWIE Sinn?) NodeMouseHover, das tritt nur auf, wenn ich über dem Node bin...
Also setze ich zur Zeit eine Member-Variable auf den gehoverten Knoten und frag dann im Click ab, ob der gehoverte und der geklickte Knoten gleich sind...
Das funktioniert soweit schon ganz ok... nur kann man jetzt halt einen Knoten hovern und dann trotzdem daneben klicken und es wird Text eingefügt....
Hat irgendjemand einen Vorschlag, wie man das Problem lösen kann?
erstmal: um ein ContextMenustrip anzuzeigen verwendet man doch kein MouseClick-Event. Ich jedenfalls würde im Designer das Contextmenu der Treeview.Contextmenu - Property zuweisen, und damit reagierts autom. auf Rechtsklickse auf den TV.
das hab ich auch nicht... ich hab das MouseClick-Event nur für die Ermittlung der Position genommen
Aber ist schon ein Mangel, dass ContextMenu sich nicht selber die MausClickPosition merkt von dem Click, mit dem es geöffnet wurde.
Also muß man doch ein Extra-Event bemühen, und sich die Mausposition merken.
Ich würde dafür aber das ContextMenuStrip.Opened - Event nehmen.
Ja, das war der Sinn dieses Threads... die Frage war eigentlich, ob das nicht in einem Event geht...
ContextMenuStrip.Opened geht natürlich auch... allerdings ist es auch nicht wirklich ein Verlust, wenn ich bei jedem Klick auf einen der Nodes die Koordinaten berechnen lasse...
oder du kannst das Tag property des treeviews dafür missbrauchen, oder du kannst die node ins tag property vom kontext menu legen.. oder ... oder ... oder
Das gefällt mir besser als ne Member-Variable. irgendwie. danke.
okay, das funktioniert, danke.
Mein Problem war in Wirklichkeit ein anderes...
Ich glaube, ich verlange dem TreeView zu viel ab, da hatte ich irgendwie etwas seltsame Effekte, die ich nicht richtig deuten konnte.
Außerdem wollte ich ursprünglich keine globale Variable einführen, aber anders scheint es wohl nicht zu gehen und so funktionierts.
Hallo,
Ich habe folgendes Problem.
Und zwar habe ich in meiner Anwendung einen TreeView, dessen Nodes Elemente aus einer Datenbank darstellen.
Wenn der User mit Rechtsklick auf einen der Nodes klickt, soll ein Kontextmenü aufgehen. Wenn er wiederum auf eines der Kontextmenü-Items klickt, soll eine Funktion ausgeführt werden, die jedoch den Node, auf den rechtsgeklickt wurde, benötigt.
Mein Problem: Wenn ich das "Rechtsklick"-Ereignis des TreeView-Nodes auswerte, habe ich zwar Informationen über die Mauskoordinaten und darüber auch Informationen über den geklickten Node mit:
System.Drawing.Point P = new System.Drawing.Point(((MouseEventArgs)e).X, ((MouseEventArgs)e).Y);
//Angeklickten Knoten herausfinden (da, wo der User hingeklickt hat)
TreeNode node = treeView1.GetNodeAt(P);
Dafür weiß ich jedoch noch nicht, welchen Kontextmenü-Item er anklicken wird, das hat er ja noch nicht getan.
Wenn ich das Ereignis "Click" des ContextMenuItems wähle, weiß ich, welchen er ausgewählt hat, ich habe aber keine Informationen mehr darüber, welcher Node ursprünglich geklickt wurde....
Gibt es eine Möglichkeit, den Node und den geklickten Item zu finden? Könnte ich die Eventhandler irgendwie so "umbiegen", dass ich als Event Mauskoordinaten bekomme?
Ich wäre für Hilfe dankbar..
Danke... das mit dem Linklabel "In die Datenbank eintragen" gefällt mir glaube ich am besten... da hätte ich auch selbst drauf kommen können 😃
verwendetes Datenbanksystem: Access
Hallo,
Ich habe folgendes (scheinbar falschrummes) Problem: Ich möchte meine Datenbank aktualisieren, wenn in einer Combo-Box etwas eingegegeben wurde, was noch nicht in der Datenbank steht.
Ich habe die Combobox auf DropDown-Style eingestellt, kann den Inhalt also editieren.
Wenn der User den Inhalt editiert und keines der bereits vorhandenen Elemente eingegeben hat, soll eine MessageBox angezeigt werden, die ihn fragt, ob er den neuen Wert in die Datenbank eintragen möchte (wenn ja, soll das natürlich getan werden)...
Mein Problem ist, dass es kein Ereignis zu geben scheint, dass explizit sagt, dass der User den Text händisch editiert hat und nicht einfach nur ein Element der DropDownListe gewählt hat.
Die ComboBox wird aus der Datenbank gefüllt, das funktioniert auch zuverlässig... nur andersrum krieg ichs nicht hin..
Danke für eure Hilfe..
Gruß
Steffi