Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: vb6 Ohjelma serverillä Access ongelma

Sivun loppuun

Apuvaaaa [25.08.2011 22:48:24]

#

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!

Grez [25.08.2011 23:15:53]

#

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ää.

Apuvaaaa [26.08.2011 00:24:01]

#

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 ????

Grez [26.08.2011 01:13:25]

#

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.

Apuvaaaa [27.08.2011 17:16:01]

#

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ä.

Grez [27.08.2011 17:35:27]

#

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;"

Apuvaaaa [27.08.2011 17:47:21]

#

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.

Grez [27.08.2011 17:51:38]

#

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.


Sivun alkuun

Vastaus

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

Tietoa sivustosta