Terve,
Tällainen aloittelija kaipaisi nyt vähän kokeneempien apua.
Pitäisi saada auki tietokanta. Esimerkiki juuri CommonDialogilla, eli ei sitä linkitystä suoraan tietokantaan vaan käyttäjän saa itse valita tietokannan minkä haluaa.
Private Sub mnuAvaa_Click()
On Error GoTo ErrHandler
CommonDialog1.Filter = "Tietokannat (*.mdb)|*.mdb"
CommonDialog1.ShowOpen
Exit Sub
ErrHandler:
Exit Sub
End Sub
Tällaisen koodin sain erään kirjan avulla tehtyä. Tässä voi valita tietokannan, mutta pitäisi ilmeisesti määritellä mihin se tietokanta avataan tms.
Eikös se pitäisi jotenkin määritellä että se avataan esim. tuohon DataGrid-objektiin?
Koska tuolla DataGridillä pystyy linkittämään suoraan tietokantaan.
Huh, no toivottavasti tajuatte mitä tarkoitan :)
En tiiä noista mdb:stä, mutta tiedosto avataan näin:
Private Sub Avaa_Click() CommonDialog1.Filter = "Kaikki (*.*)|*.*|" CommonDialog1.Action = 1 Open CommonDialog.FileName For Input As #1 text1 = Input(LOF(1), 1) Close #1 End sub
Tarvitset Data-objektin, jonka DataBaseName-ominaisuuteen asetat tietokannan nimen polkuineen. DataGrid linkataan sitten tuohon Data-objektiin.
setä kirjoitti:
Tarvitset Data-objektin, jonka DataBaseName-ominaisuuteen asetat tietokannan nimen polkuineen. DataGrid linkataan sitten tuohon Data-objektiin.
Niin, tämän kyllä osaan. Mutta jos käyttäjän pitäisi valita se tietokanta, mikä avataan tuohon data-objektiin, niin miten sellainen onnistuisi. Täytynee ehkä jotenkin soveltaa Bill Keltaisen antamat ohjeet tiedoston avaukseen.
Kokeilin tällaisella koodilla, ja sain kyllä tietokannan avattua. Mikä taulu sitten valitaan, määrää lukuarvon recordsetin valinnassa (1. taulu on n:ro 4)
Private Sub mnuOpen_Click()'avausvalikko CMD.Filter = "Database(*.mdb)|*.mdb" CMD.Action = 1 CMD.ShowOpen Data1.DatabaseName = CMD.filename Data1.Refresh DoEvents Data1.RecordSource = Data1.Database.TableDefs(7).Name End Sub
setä kirjoitti:
Kokeilin tällaisella koodilla, ja sain kyllä tietokannan avattua. Mikä taulu sitten valitaan, määrää lukuarvon recordsetin valinnassa (1. taulu on n:ro 4)
Private Sub mnuOpen_Click()'avausvalikko CMD.Filter = "Database(*.mdb)|*.mdb" CMD.Action = 1 CMD.ShowOpen Data1.DatabaseName = CMD.filename Data1.Refresh DoEvents Data1.RecordSource = Data1.Database.TableDefs(7).Name End Sub
Juu, kyllä tuo luultavasti mullakin toimii, mutta voisiko joku vielä valaista tyhmää ja kertoa, että miten ne tietokannan tiedot sitten otetaan tuolta tietokannasta?
Pitäiskö ne avata juuri tuolla DataGridillä? eli laittaa datasourceksi tuo data1.databasename, vai miten? Onko jollain vielä parempia ideoita?
Mutta kiitoksia paljon tästäkin avusta.
Tai pitäisikö tässä alkaa kikkailemaan noiden adodb-juttujen kanssa?
Joo, datagridin datasouceksi Data1. Tiedot näkyvät datagridissä, ja niitä voi muokata jos asetukset sallivat.
Kun koitan laittaa datagridin datasourceksi tuon data1, niin se antaa tällaisen virheilmoituksen:
"No compatible data source was found for this control. Please add OLEDB data source such as data environment or Microsoft ADO Data Control to the form or project"
Kokeile laittaa suunnittelutilassa Data1:n databaseName johonkin käyttämääsi tietokantaan ja sitten dbgridin datasourceksi Data1. Itse kokeilin Access-tietokantaa.
Heska kirjoitti:
Tai pitäisikö tässä alkaa kikkailemaan noiden adodb-juttujen kanssa?
Itse tätä yritin, mutta saan yhteyden vain Data-objektilla.
Mikäli käyttää ADO:a, niin eikö Jet 4.0 pitäisi käydä yhteydenpitoon DataGrid:n kanssa?? Data Enviroment ei myöskään toimi DataGridin kanssa???
-A
Saimpa tuon nyt näyttäytymään MsFlexGridillä, parin refreshin kanssa.
Alkuun olen nyt päässyt, vielä pitäisi tallennukset ja muokkaukset koodailla.
Kiitoksia avusta.
En tosiaan saanut tuohon datagridiin toimimaan tuota data1:stä, en sittne tiedä mistä se johtuu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.