Toon posts:

2 vragen m.b.t Visual Basic in Access

Pagina: 1
Acties:

Verwijderd

Topicstarter
Zoals de titel al weergeeft hier komen even twee vragen over Visual Basic onder Access.

vraag 1:

Is het mogelijk om in een veld meteen het volume naam van een cd te laten weern gegeven en zo ja hoe kan dit? Dus ik heb een database en een veld cd-nummer en dat hij meteen in dat veld het volumenaam van die cd geeft vaak is dat hier "Archief 1" of iets dergelijks.

Vraag 2:

Ik had deze zelfde vraag een paar dagen geleden gevraagt hier op tweakers maar ik kreeg maar een antwoord die niet echt goed werkte. Misschien weet iemand wel de juiste code.

Ik heb een knop. Als men op deze knop drukt dan wordt de toepassing winzip gestart. Nu is het zo dat ik in deze database ook een veld heb met een willekeurife bestandsnaam. Nou is vaak het geval dat het een ZIP bestand is. Nu staat er bijvoorbeeld D:\hga_1.ZIP dit veld heet directory (waar de filenamen in staan). Is het nu mogelijk dat als ik op die knop druk (waar winzip mee gestart wordt) ook meteen de file geopent wordt in winzip. Hierbij gaat het dus om de filenaam die in het veld "Directory" staat.

Ik hoop dat iemand hierop mij een antwoord kan geven want ik kom er niet meer uit.

Alvast hartelijk bedankt.

Verwijderd

Jazeker kan dat.
Ik heb niet naar je vorige post gekeken.

Wat te doen: Je gebruikt gewoon de command-line funktie van winzip zoals:

notepad c:\autoexec.bat

maar dan nu winzip %string%.

Ikzelf gebruik Access XP en dan ziet het er als volgt uit als ik met Winrar een bestand wil openen:

Ik maak een form.
Ik gooi daar een commandbutton op (ik gebruik geen database)

code:
1
2
3
4
Private Sub Command0_Click()
Dim RetVal
RetVal = Shell("C:\Program Files\WinRAR\winrar.exe " & "d:\lwo10076.zip", vbNormalFocus)
End Sub

Als ik iets wil openen wat in een veld staat dan als volgt:

Ik maak een form.
Ik gooi daar een commandbutton en een textbox control op (ik gebruik geen database.

code:
1
2
3
4
5
6
Private Sub Command0_Click()
Dim RetVal
Dim ditisjetextbox As String
ditisjetextbox = txbPADBESTAND
RetVal = Shell("C:\Program Files\WinRAR\winrar.exe " & ditisjetextbox, vbNormalFocus)
End Sub

Ik heb nog nooit VBA geschreven in Access XP, maar hij doet het! 8-)

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13-09 12:14

Crazy D

I think we should take a look.

Op maandag 04 maart 2002 10:43 schreef jobosrulez het volgende:
Is het mogelijk om in een veld meteen het volume naam van een cd te laten weern gegeven en zo ja hoe kan dit? Dus ik heb een database en een veld cd-nummer en dat hij meteen in dat veld het volumenaam van die cd geeft vaak is dat hier "Archief 1" of iets dergelijks.
:?
Waar en wanneer wil je dat er "Archief 1" komt te staan? Bij het toevoegen van een nieuw record?

Exact expert nodig?


Verwijderd

Topicstarter
Nou het is zo bij mijn tweede vraag. Ik gebruik een database waarin je cd gegevens op kan slaan dus dat hij automatisch de namen van de files in de database zet zodat het overzichtelijk blijft. Wat er op elke cd staat

Nu is het dus zo dat je op een knop kan drukken en dna laat hij al die files in de database in de database om het zo maar te zeggen maar nu is er dus ook een regel dat je de nama van de cd op kan gegeven. Zodat je later kan zien in de database op welke cd die file staat.

Nu doe je voordat je die cd gegevens in de database gaat stoppen (automatisch laden) de cd natuurlijk in het cd station nu wou ik dus weten of er een mogelijkehid bestaat om als je in het scherm komt met cd laden, in het veld cd nummer de database automatisch het volume weergeeft van de cd die in het cd-rom station zit.

en als men de cd er uithaalt of dat er geen cd in zit er "
"leeg" komt te staan.

Ik hoop dat het een beetje duidelijk nu is aangezien het nog best lastig is om zo iets uitteleggen

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13-09 12:14

Crazy D

I think we should take a look.

Op maandag 04 maart 2002 11:54 schreef jobosrulez het volgende:
Ik hoop dat het een beetje duidelijk nu is aangezien het nog best lastig is om zo iets uitteleggen
Ok da's wel duidelijk. Ben ff te lui om precieze info te geven, maar zoek even naar het FileSystemObject (Scripting.FileSystemObject), daarmee kun je o.a. de naam ophalen van de cd in de lade.

Exact expert nodig?


Verwijderd

Hmm. Ikke niet snap inderdaad.

Je hebt een CD Laden formulier in Access.

Je klikt op CD laden en dan wil je dat de volumenaam van de cd in een veld komt.

Jij gaat dan zelf aangeven welke mp3tjes er op staan?

Zodra je op cd uitwerpen klikt, moet volumenaam "leeg" zijn, want dr zit niks meer in.

Ik mis even het stukje wanneer je de nummers in gaat voeren. Als ik dat weet, heb ik een antwoord op je vraag.

In ieder geval krijg je dit alvast van me:

Hoe krijg ik een volume label te zien als mijn CD-ROM drive D: is?
Ik maak een form in Access. Op dit form zet ik een commandbutton. Onder deze command button zet ik deze VBA Code:
code:
1
2
3
Private Sub Command0_Click()
MsgBox (Dir("d:", vbVolume))
End Sub

Je hebt dus genoeg aan Dir("d:", vbVolume), maar ik maak er een pop-up windowtje van.

Wees creatief en maak er zelf maar een label van.

Ik hoop dat ik je hiermee geholpen heb. :)

Verwijderd

Add on: niet moeilijk doen met filesystem objecten om volumenamen te "resolven".
(no offence Crazy_D).

Mijn motto is: hou je code zo kort mogelijk en kies altijd de snelste weg als dit de performance niet beinvloed.

:)

Verwijderd

Topicstarter
Bedankt Systeemprutser ik ben al een end op weg

Alleen heb ik nog effe een vraagje over dat eerste waar je antwoord op geef

op een gegeven moment zeg je

ditisjetextbox = txbPADBESTAND

nou ditisjetextbox is bij mij het veld directory.

maar wat moet er precies bij txbPADBESTAND komen te staan? Want ik heb van alles al geprobeerd. Zet je daar waar je files op staan dus d:\ of een ander veld?

Ik hoop dat je hier nog even antwoord op kan gegeven dan zou ik weer helemaal tevreden zijn :)

Verwijderd

Ik zal het iets duidelijk neerzetten:

Private Sub Command0_Click()
Dim RetVal ' retval declareren

Dim ditisjetextbox As String 'dit wilt zeggen: DIM(ensie) ditisjetextbox as string --> maak een object aan wat een stukje text als inhoud heeft

mijn textbox heeft als naam txbPADBESTAND (TeXtBoxPADBESTAND).

Zorg dat de string hetzelfde is als dat wat er in de textbox staat:
ditisjetextbox = txbPADBESTAND

Wij willen:
Start nu winrar op, met als extra het pad naar mijn zip-file.

Wij denken dus:
winrar jobosrulez.zip

Maar je moet het volledige pad aangeven dus:
C:\Program Files\WinRAR\winrar.exe jobosrulez.zip

jobosrulez.zip moet vervangen worden door de inhoud van de textbox:

C:\Program Files\WinRAR\winrar.exe ditisjetextbox


Omdat ik nergens winrar heb gedeclareerd (als string) moet ik het als een sting aangeven: tussen " " dus:

"C:\Program Files\WinRAR\winrar.exe "

Ik zet er een spatie achter, omdat we dit natuurlijk niet doen:
C:\Program Files\WinRAR\winrar.exeditisjetextbox
maar dit:
C:\Program Files\WinRAR\winrar.exe ditisjetextbox

Om meerdere strings achter elkaar te plakken gebruiken we het & teken. dus uiteindelijk:

RetVal = Shell("C:\Program Files\WinRAR\winrar.exe " & ditisjetextbox, vbNormalFocus)
End Sub

Ik hoop dat dit duidelijker is. Zo niet: gewoon gillen en dat wat je niet snapt iets duidelijker aangeven want ikke niet begrijp dan. Na dit stukje moet je eigenlijk snappen hoe je de string om een ander programma op te starten met extra opties werkt.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13-09 12:14

Crazy D

I think we should take a look.

Op maandag 04 maart 2002 12:22 schreef Systeemprutser het volgende:
Add on: niet moeilijk doen met filesystem objecten om volumenamen te "resolven".
(no offence Crazy_D).
Dir met vbVolume |:( Kun je nagaan hoevaak ik dat gebruik :P
Toch nog wat VB geleerd ;)

Exact expert nodig?


Verwijderd

:)

Ik moet zeggen dat ik het nog nooit gedaan hebt: volumenaam resolven.

Ook ik heb weer wat aan mezelf geleerd B-)

Verwijderd

Topicstarter
Inieder geval hartstikke bedankt voor de moeite en het geduld :)


Ik ga er eens rustig voor zitten en kijken of het gaat lukken maar ik denk het wel :)

Nog maals erg bedankt voor de hulp

Verwijderd

Graag gedaan en gil gerust als het niet lukt :).

Ik snuffel nog rond op GoT om te kijken wie er nog meer een duwtje in de goede richting kan gebruiken :z

Verwijderd

Topicstarter
Sorry systeemprutser het is helaas toch niet gelukt ik snap het toch nog niet helemaal wat je nou in moet vullen..

Ik heb een tekstveld heet Directory

nu heb ik dit staan:

Private Sub knop37_Click()

Dim RetVal
Dim directory As String

ditisjetextbox = txbPADBESTAND
RetVal = Shell("C:\Program Files\Winzip\winzip32.exe " & directory, vbNormalFocus)
End Sub


Alles doet het maar ik loop toch stuk op deze regel: :'(
ditisjetextbox = txbPADBESTAND

bij ditisjetextbox moet ik dan zetten directory (naam van het veld waar in de nama van het bestand staat")

dus dan krijg ik directory = tbxPADBESTAND

maar wat moet er nu komen te staan voor tbxPadbestand alsi ik bijvoorbeeld tbxDirectory maak dan zegt ie dat deze niet gedeclareerd is dat klopt natuurlijk maar ik weet dus niet hoe je het nu wel werkende krijgt.


Ik hoop dat je het nog leest

Verwijderd

Okee.

Even helemaal opnieuw:

ik maak een form.

Op dit form zet ik een commandbutton: cmdKLIKMIJ
en een textbox: tbxNAAMZIPFILE

In de VBA code zet ik het volgende:
code:
1
2
3
4
5
Private Sub cmdKLIKMIJ_Click()
Dim JOBOSRULEZ As String 'gewoon een string
JOBOSRULEZ = txbNAAMZIPFILE 'text in de textbox --> JOBOSRULEZ
RetVal = Shell("C:\Program Files\WinRAR\winrar.exe " & JOBOSRULEZ, vbNormalFocus)
End Sub

Ik zag net dat ik heeeeel verwarrend de naamgeving niet handig had gedaan. Sorry.

Verwijderd

Topicstarter
Even voor de duidelijkheid misschien klinkt het raar hoor maar is die tbxNAAMZIPFILE het zelfde als mijn

veld directory of iets totaal anders?

Verwijderd

Topicstarter
want wat ik dus nu heb gedaan waarschijnlijk is dat ik die string het zlefde heb genoemd als het veld.. of kan het daar niet aan liggen dat het niet lukt..

dus je moet gewoon een willekeurige naam verzinnen voor die string en achter tbx de naam van het veld dus in mijn geval Directory?

Verwijderd

tbxNAAMZIPFILE is de naam die ik aan de textbox heb gegeven.

(je tekent een textbox op een formulier en onder properties wijzig ik altijd de naam om het te verduidelijken).

Verwijderd

ik doe altij het volgende:

formulier = frmMAIN
naam = tbxNAAM
adres = tbxADRES

Als je namelijk in je code gaat kijken (VBA) dan is het allemaal wat duidelijker.

Verwijderd

Post je code anders even, dan zie ik waar je mee bezig bent.

Verwijderd

Topicstarter
OO vandaar waarschijnlijk ...

Ik heb namelijk een veld staan met Directory en daar zet hij automatisch de naam van de file in die op de cd staat .

eerst laad ik de cd in en leest hij alle files uit dit zet ie in een database dus elke file wordt een apart record om het zo maar te noemen.

Dit veld heet directory.

Nu wou ik dus een knop hebben die kijkt wat er in het veld directory staat. Dus dat is bijvoorbeeld dan d:\MAGW_02.ZIP.
En als ik nou op die knop druk moet hij dat bestand van de cd aflezen en in winzip openen dat is dus eigenlij kde bedoeling van het geheel.

Maar als ik een hele nieuwe textbox ga maken dan komt na het inlezen van die cd de files natuurlijk niet automatisch in dat textbox staan of wel?

Verwijderd

Topicstarter
Ik weet niet wat je mail adres is anders mail ik die database wel even?

Verwijderd

Staat vanaf nu in mn profiel.

Ik kijk er pas morgen naar, moet stukkie rijden in de ochtend (zie profiel).

Verwijderd

Topicstarter
Ik zal hem dna even mailen. Naar je doe rustig aan hoor het heeft niet zo'n haast.

Ik denk dat je hem moet openen met de shift ingedrukt.

Alvast hartstikke bedankt
Pagina: 1