Hi, nochmal. Vor 2 Tagen hab ich gefragt, wie ich eine Abfrage in ACCESS befüllen kann. Nach einigen Versuchen habe ich es nun doch geschafft. Nämlich CDaoQueryDefInfo macht das ganze. Wenn ich jetzt mit SetParamValue einen Wert abfrage läuft alles Problemlos und die Abfrage liefert was vernünftiges zurück.... Mein Problem liegt nun (noch immer) bei der Übergabe von Strings. Wenn ich folgendes mache kommt aus der Abfrage nix zurück. (Bei Integer werten zB die ID geht das ganze aber)
rs.m_pDatabase=&db; CString ff="Meier";//den gibts in der DAtenbank dat=ff; CDaoQueryDef qd(&db); qd.Open(m_selected); //CString aus einer Listbox qd.SetParamValue(0,dat); rs.Open(&qd); }
Kann mir vielleicht doch noch jemand helfen? Besten Dank im VorausDieser Post wurde am 05.10.2003 um 18:43 Uhr von Suchthaufen editiert.
So, habs nun doch hinbekommen und poste das mal: Zunächst muss man in Access eine Abfrage erstellen und in der Entwurfsansicht einen Parameter deklalieren ( Rechte Masutaste->Parameter... und ausfüllen) Der Zugriff ist dann lericht(wenn man weiss wie)
C++:
CDaoDatabase db; db.Open(m_databasePath); //Membervar CString sqltx; CString text; CDaoRecordset rs(&db); CString ff="A*"; //Alle die mit A beginnen will ich haben COleVariant dat(ff,VT_BSTRT); // Unbedingt auch so machen wenn ein String übergeben wird CDaoQueryDef qd(&db); qd.Open(m_selected); // Membervar wo AbfrageName gespeichert ist qd.SetParamValue(0,dat);// ersten Parameter setzen rs.Open(&qd); while (rs.IsEOF()==FALSE) { rs.MoveNext(); } qd.Close(); rs.Close(); db.Close();
Dieser Post wurde am 06.10.2003 um 14:45 Uhr von Suchthaufen editiert.