Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Tietokannan avaaminen CommonDialog-objektilla

Sivun loppuun

Heska [28.03.2004 13:18:00]

#

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 :)

Bill Keltanen [28.03.2004 14:39:05]

#

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

setä [28.03.2004 14:43:12]

#

Tarvitset Data-objektin, jonka DataBaseName-ominaisuuteen asetat tietokannan nimen polkuineen. DataGrid linkataan sitten tuohon Data-objektiin.

Heska [29.03.2004 13:26:18]

#

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.

setä [30.03.2004 17:11:54]

#

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

Heska [31.03.2004 19:20:23]

#

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.

Heska [03.04.2004 23:51:56]

#

Tai pitäisikö tässä alkaa kikkailemaan noiden adodb-juttujen kanssa?

setä [04.04.2004 00:12:21]

#

Joo, datagridin datasouceksi Data1. Tiedot näkyvät datagridissä, ja niitä voi muokata jos asetukset sallivat.

Heska [04.04.2004 13:17:25]

#

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"

setä [04.04.2004 17:18:51]

#

Kokeile laittaa suunnittelutilassa Data1:n databaseName johonkin käyttämääsi tietokantaan ja sitten dbgridin datasourceksi Data1. Itse kokeilin Access-tietokantaa.

arisau [05.04.2004 10:36:44]

#

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

Heska [05.04.2004 22:21:52]

#

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.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta