Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » mfc Odbc mit Access =) !..

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.07.2003, 14:02 Uhr
~split
Gast


Hi ihrse ,

ich habe mal wieder ein Problem bei dem die Lösung sehr einfach scheint , ich sie aber nicht ganz hinbekomme .

Ich habe eine Access-Datenbank mit mehreren Tabellen , die untereinander verknüpft sind . Hierzu habe ich mir eine Abfrage erstellt , die mir die gewünschten Daten ausliest.

Mit Mfc habe ich ein Project angelegt abgeleitet von CRecordView , welches mir genau auf diese erstelle Abfrage zugreift.

und nun mein Problem ..

Ich würde gerne , wenn ich in meinem Programm , z.b in einer Combobox oder radiobutton (erstmal völlig egal) ein anderen wert selektiere, das mir das programm nun die auf eine andere Abfrage zugreift! ... aber wie bekomme ich das hin ?
Ich habe schon mit CRecordSet::GetDefaultSQL() rumgespielt , aber ich bekomme es einfach nich in..

Die 2 Abfrage ist identisch mit der ersten , nur das sie mir z.b eine bestimmte Firma und deren Aufträge ausgibt , und nicht alle anderen auch noch..

Ich hoffe ihr könnt mir helfen , und das ich mein Problem einigermaßen gut erklärt habe .

mfg split
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.07.2003, 16:09 Uhr
~split
Gast


weiss denn niemand rat =( ?..

oder hab ich mich zu umständlich ausgedrückt ?

mfg split
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.07.2003, 16:23 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du musst doch theoretisch nur mit MoveNext bzw Move zum richtigen RecordSet springen in deiner Tabelle und dann die Daten benutzen...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.07.2003, 16:26 Uhr
~split
Gast


ne Flo leider geht das nicht so.

ich will ja dann , das nur bestimmte datensätze angezeigt werden , und zwar z.b nur die mit der ID = 3 .

Beim InitialUpdate lass ich mir ja eh alle Daten anzeigen . Springen is kein thema , aber die selektion das er mir wenn ich z.b im Combofeld ID 3 selektiert habe, das er mir nur die Einträge mit eben ID = 3 ausgibt .

Ich müsste irgendwie eine neue Abfrage starten mit ner neuen Instanz oder so , aber ich weiss leider nicht wie ! =(

mfg split
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.07.2003, 17:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Wie stellst du alle Datensätze dar? in einer ComboBox? Wenn ja wäre es doch kein Problem, deine View ist ja ein CRecordView.

Wenn du nun z.b Eintrag 3 selektiert hast, kannst du doch dann theoretisch
mit OnGetRecordset() dein RecordSet holen, mit Move(3,SQL_FETCH_ABSOLUTE); zu deinem Eintrag "moven" und dann eben die Daten abholen (z.b mit GetFieldValue)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.07.2003, 16:02 Uhr
~split
Gast


da ke flo für die viele mühe ,

aber das ist leider auch nicht die lösung. ich wollte das anstatt der normaöen abfrage , die in GetDefaultSQL() drinnen steht , einfach eine neue Abfrage gestartet wird . Felder und alles bleiben ja gleich , nur das mir dann z.b alle Einträge der Firma "Test Firma" angezeigt werden .

mit der GetDefaultSQL() Abfrage Frage ich ja alle Einträge aller Firmen ab..



Trotzdem danke für die Mühe..


mfg split
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.07.2003, 18:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


im RecordSet gibts auch ne Membervariable m_strFilter oder sowas, schau am besten in die MSDN für genaueres, damit sollte es theoretisch möglich sein "WHERE"-Einschränkungen einzubaun
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.07.2003, 23:07 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
noch ein kleines Bsp.

C++:
void CDBDemoView::OnSelchangeCombo1()
{
    CString str;
    int i = m_ctrlCombo.GetCurSel();
    m_ctrlCombo.GetLBText(i,str);
    if(str == "2"){
        m_pSet->m_strFilter = "KD_Nr = 2";
        m_pSet->Requery();
        if ( !m_pSet->IsEOF() ){
            UpdateData(FALSE);
        }
    }else{
        CDatabase *pdb;
        CDBDemoSet *pRecord;
        pdb = new CDatabase;
        pdb->Open("Kunden");

        if(!pdb->IsOpen()){
            MessageBox("Database not open error.");
            delete pdb;
            return;
        }
        CString sql = _T("SELECT * FROM [Kunden] WHERE KD_Nr = 1");
        pRecord = new CDBDemoSet(pdb);
        try{
            pRecord->Open(CRecordset::snapshot,sql,
                CRecordset::readOnly|CRecordset::executeDirect);
                CString f,p,o;
                pRecord->GetFieldValue("Firma", f);
                pRecord->GetFieldValue("PLZ", p);
                pRecord->GetFieldValue("Ort", o);
                m_pSet->m_Firma = f;
                m_pSet->m_PLZ = p;
                m_pSet->m_Ort = o;
                if (!pRecord->IsEOF()){
                    UpdateData(FALSE);
                }
        }
        catch(CException* e){
            char sError[256];
            e->GetErrorMessage(sError, 256);
            MessageBox(sError);
            e->Delete();
        }
        pRecord->Close();
        delete pRecord;
        delete pdb;
    }
}


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 03.07.2003 um 23:42 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
04.07.2003, 09:03 Uhr
~split
Gast


danke schön ..

genau sowas habe ich gesucht ..!
Vielen Dank für Eure Hilfe ..




mfg split
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: