Joopa joo. Kekkasin tehdä ohjelman (tietokanta) serverille Ubuntu Gnome Samba, jossa ulkoinen kiintolevy 2T. Elikä tein tietokantasovelluksen, joka toimisi siis servun ulkoiselta levultä käytettäessä. Tein tietokannan (Access) ja siihen käyttö liittymän vb6:lla. Nyt tuo ohjelma herjaa, että ei löydä tietokantaa levyltä: ' db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source= app.path & \\Etp\data\Lääkkeet\ Lääkkeet.mdb;"
Väittää siis, että ko tiedostoa ei siellä ole, vaikka se siellä varmasti onkin. Tietokanta on haettu vb6:n automaattisella tietokannan teko systeemillä, jolloin kaikki ko. tietokannan osiot/tiedostot löytyivät. ???? Osaako joku kertoa missä teen virheen. Tarvittaessa lisää ohjelmakoodia katsottavaksi, jos edellinen ei riitä.
Servu on siis kotiverkossa tossa vieressä olevalla koneella. Tarkoituseni olisi voida hyödyntää jatkossa ohjelmaa netin kautta ulkoa käsin.
Kiitokset vastauksista jo etukäteen!
Aika häröstä polusta kyllä väität sen löytyvän:
"app.path & \\Etp\data\Lääkkeet\ Lääkkeet.mdb"
Mun koneelle kelpaa vain x:\ tai \ tai / alkuiset polut, mutta ehkä sulla on vähemmän nirso.
Kokeile ihan huvikses korvata toi db.Open -> MsgBox ja katso mitä se näyttää.
Pöh! Miten Sinä tuon teit??? Nyt ohjelma löytää ohjelman servulta, mutta ei edelleenkään osaa lukea tietokantaa. Avaa siis ohjelman servulta, mutta ei tee mitään. Poistettuani kommentin riviltä -> Private Sub Form_Load()
Ohjelma herjaa jotain "object variable or with block variable not set" ts. ohjelma on saanut I-asteen AV-blockin tai jonkin muun kohtauksen? Access tietokantaa avatessani winukan koneella antaa varoituksen epäilyttävästä ohjelmistosta. Avaa sen kuitenkin oikein, ja antaa editoida etc., antaessani käskyn avata ohjelma varoituksesta huolimatta.
Edelleen ????
Ohjelma löytää ohjelman?
Virheilmoitukselle on todennäköisesti syy. Vaikea sanoa ilman koodia. Laita vaikka esimerkkiohjelma, jolla ongelma esiintyy, ladattavaksi jonnekin.
Windows varoittaa verkosta ladattavista tiedostoista, jotka voivat sisältää ajettavaa koodia, se on ihan normaalia. Sen ei pitäisi liittyä mitenkään tietokannan käyttöön VB:stä käsin.
Joo koodipätkä on nyt tämmöinen:
Private Sub Form_Load() Dim db As Connection Set db = New Connection db.CursorLocation = adUseClient MsgBox "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source= app.path & \\Etp\data\Lääkkeet\ Lääkkeet.mdb;" Set adoPrimaryRS = New Recordset adoPrimaryRS.Open "select Kauppanimi,Geneerinen,Kemiallinen ,Vaikuttava-aine,Normaali ,Käyttöaiheet,_ Käytön ,Intoksikaatio,Muuta,Laskuri from tblLääkkeet", db, adOpenStatic, adLockOptimistic Dim oText As TextBox 'Bind the text boxes to the data provider For Each oText In Me.txtFields Set oText.DataSource = adoPrimaryRS Next mbDataChanged = False End Sub
Tosin löysin tuohon tietokannan hakemiseen jotain, mutta en ainakaan vielä saanut toimimaan.
oConn.Open "Provider = MS Remote;" & _ "Remote Server = http://myServerName;" & _ "Remote Provider = Microsoft.Jet.OLEDB.4.0;" & _ "Data Source = C: \ somepath \ mydb.mdb", _ "Admin", ""
Joten tämän projektin kanssa olen edelleen yhtä kysymysmerkkiä.
Mahdatko ollenkaan tajuta mitä teet, vai lätkitkö vaan sieltä täältä löytämiäsi koodinpätkiä yhteen ja yrität saada sen tuurilla toimimaan?
Sen MsgBoxin idea oli näyttää mitä käsket sen db-objektin avata Open -komennolla ja sen jälkeen normaalisti huomattaisiin vika ja korjattaisiin se oikeaksi sekä muutettaisiin takaisin MsgBox -> cn.Open
En nyt ihan tarkoituksella laita suoraan sitä, mitä rivilä todennäköisesti tulisi lukea, koska sinun pitäisi itse ymmärtää mikä tuossa on vikana.
Aloita vaikka kohta kerrallaan selvittämään mikä on jokaisen tällä rivillä olevan sanan ja merkin merkitys:
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source= app.path & \\Etp\data\Lääkkeet\ Lääkkeet.mdb;"
Joo tajusin kyllä, mutta kokeilen ongelman ratkaisua kahdella eri koodilla tuohon nyt jäi se Sinun opastamasi juttu. Eli tuohon koodiin teen sitten sen toimivan jutun, jos nyt koskaan tuota saan selvitettyä.
Paikallisesti tuo polku on helppo selvittää, mutta verkon kautta en ole aiemmin näitä tehnyt. Joten täytyy jatkaa tumpeloimista.
No siis se polkuhan verkon kautta (oletettavasti) pitäisi olla ihan \\Etp\data\Lääkkeet\Lääkkeet.mdb tms. Eli se sama minkä kirjoitat vaikka Accessiin kun avaat sen tai vaikka notepadilla. Kokeile notepadissa/muistiossa valita "Tiedosto->Avaa" ja sitten kirjoittaa siihen tiedostonimi-riville:
app.path & \\Etp\data\Lääkkeet\ Lääkkeet.mdb
Veikkaan että se valittaa sulle että tiedostoa ei löydy. Tuossa on 6 asiaa, joita siinä ei minun mielestä pitäisi olla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.