Toon posts:

[VBA] References

Pagina: 1
Acties:
  • 135 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Situatie: Ik heb een VBA applicatie gekregen van iemand die nu verder moet uitgewerkt worden.
De applicatie is dus verhuist van computer. (Simpel twee mdb's, eentje met data en eentje met FrontEnd)

Probleem: De references (gebeurt wel vaker) Maar nu lukt het mij gewoon niet om de juiste files te vinden voor de references.

Het gaat om ODEADDIN.DLL (versie 1.0) ... lijkt me behoorlijk basic. Hierdoor kan ik zelf geen gebruik maken van Chr en App.Path bvb en ook nog prjFileLink.OCX (versie 31.0) . Ik weet niet waar die net voor dient maar het geeft ook een probleem.

Hoe kan ik het verhelpen, volstaat het gewoon die twee files van gelijk welke pc op mijn pc te plaatsen?
Waar kan ik die files vinden? Totnogtoe niemand gevonden met deze files en de originele schrijver is momenteel onberijkbaar.

Alvast bedankt!

Verwijderd

Topicstarter
*schopje* (beetje op een slecht uur gepost)

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:08
VBA hoort eerder thuis in OFF
-> OFF

https://fgheysels.github.io/


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 26-07 17:36

NMe

Quia Ego Sic Dico.

Verwijderd schreef op vrijdag 18 augustus 2006 @ 08:55:
*schopje* (beetje op een slecht uur gepost)
Nou en? Je topic stond toch nog praktisch bovenaan? En mensen die vannacht niet online zijn geweest zien je topic sowieso al actief (rood) worden. Je schop was dus vrij nutteloos, nog los van het feit dat schoppen binnen 24 uur ongewenst is op GoT. Gelieve niet meer te doen dus. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Het gaat over dergelijke dingen:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
Sub MakeConnection()
On Error GoTo errorhandler

 'Database opzoeken en koppelen
 Dim strConn As String
 Dim fso As FileSystemObject
 If fso.FileExists(App.Path & "\Splendid_Data.mdb") = False Then
  '--- formulier om database te zoeken ---'
 Else
  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Splendid_Data.mdb;Persist Security Info=False"
 End If

Hierbij werkt voorbeeld mijn app.path niet en daarvoor heb ik die ODEADDIN.DLL nodig dus dat moet toch wel bij programmeren volgens mij. Ik denk niet dat dit direct iets is voor mensen die de OFF checkken? Xcuseer als ik me vergis.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Noch OdeAddin noch prjfilelink zijn noodzakelijk voor ene gode werking van het application object. Het eerst is een extensie van developers edition, het tweede klinkt als een eigen maaksel. Wat gebeurt er als je die verwijzingen gewoon verwijderd en vervolgens hercompileert?

En wat levert een zoekactie op de hele harde schijf op? Je DLL's en OCX'jes kunnen in principe overla staan ;)


offtopic:
Dergelijke dingen heet VBA en dat hoort in [off] en je IDE host heet MsOffice. Wat is daar nu zó onbegrijpelijk aan?

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Ik schaam me dood voor de eenvoud van de oplossing.
Maar Microsoft mag zich schamen voor zijn foutmeldingen.

Met het uitschakelen van de twee is het idd opgelost.
(ik had natuurlijk al mijn C: afgezocht naar deze files,
en ik had het ook al aan een 10 tal andere mensen gevraagd,
en niemand had deze files.)

Microsoft bleef me echter melden dat er een fout zat op mijn Chr(34)
Toen ik die verwijderd en verving door echte accenten,
kwam er een probleem op mijn app.path, en zo ging hij maar door.

Maar ok, alles opgelost. Dankjewel!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op vrijdag 18 augustus 2006 @ 10:05:
Ik schaam me dood voor de eenvoud van de oplossing.
Maar Microsoft mag zich schamen voor zijn foutmeldingen.
Terecht, de eerste zin dan :p

De enige die zich moet schamen is degene die die db afgeleverd. Hij instrueert de VBA host dat voor de correcte werking van de code twee externe bestanden nodig zijn. Die zijn er niet, met als gevolg dat de code niet gecompileerd kan worden. Heeft het zin/ is het mogelijk de code gedeeltelijk te compileren? Niet echt, en dus klapt het bij de uitvoering van de code op de eerste de beste regel waarbij een externe verwijzing nodig is.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Ik zou dan eerder verwachten dat hij dichtklapt op een functie waarvoor hij deze references nodig heeft.
Maar niet dus. Nu, ik ben geen VB mens, ik verschuil me liever in de wereld van PHP, HTML en zo verder. Maar alsnog bedankt!

Verwijderd

Topicstarter
Ik blijf toch maar sukkelen.

Moet je voor App.Path een reference aanzetten? Mijn VBA code wil het maar niet herkennen. De Context is wat ingewikkelder, maar ik heb het ondertussen al vereenvoudigd om de fout te vinden en kom ik uit dat App.Path de schuldige is, want hij heeft fout bij de lijn waar enkel maar het volgende staat. (Ook als ik "App." typ, komen er geen opties achter)

Visual Basic .NET:
1
MsgBox App.Path


De Foutmelding:
Fout 424 tijdens uitvoering:
Object vereist

Verwijderd

de variabele app is niet gedefinieerd binnen de procedure makeconnection, dus tenzij deze public ergens nog is bepaald, zal je de vermelde fout krijgen (probeer eens met application.path). daarnaast ben je vergeten het filesystemobject te instantiëren. (alhoewel je voor het testen of een bestand bestaat, de ingebouwde opdracht dir() kunt gebruiken).

Verwijderd

Topicstarter
Application.Path werkt ook niet.
Ik begrijp helemaal niet hoe ik nog aan dit path kan komen.
Mensen met een ander idee?
Ik kan voorlopig wel ergens dat pad als een constanten bewaren,
maar dat zorgt enkel maar voor problemen als het op een andere pc komt te staan.

Verwijderd

@ts:

http://www.vbcity.com/for...1377&highlight=app%2Epath

VBA ondersteund niet alles wat VB ondersteund.. , hier vind je een procedure die je kan gebruiken
ACC2000: How to Retrieve the Path or File Name from the Name Property

  • Bolhuis
  • Registratie: Juli 2004
  • Laatst online: 11-10-2006
Hoewel dat niet echt in het topic vermeld staat ga ik ervan uit dat in Access met VBA werkt.

Als dat zo is moet wat jij wil te doen zijn met:

Visual Basic .NET:
1
 If fso.FileExists(Application.CurrentProject.Path & "\Splendid_Data.mdb") = False Then 

Verwijderd

Topicstarter
Jaha! Dat is 't ... Dankjewel. Nu zou het hier bijna af moeten zijn, want ik heb een hekel aan VBA.
Pagina: 1