Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 8 van 8

Onderwerp: Variabele bestandnamen met iedere extensie openen

  1. #1
    Vraag is opgelost

    Variabele bestandnamen met iedere extensie openen

    Hoi allemaal,

    In access is een database gebouwd waarin ik via een formulier doorzoek naar een machinebesturingsprogramma.

    Het volgende script krijg ik werkend om met variabele bestandnamen in variabele folders bestanden met de extentie .opt te openen in Notepad.
    Ik zoek echter een functionaliteit waarmee ik ook files kan openen zonder extentie!
    Shell.
    De files kennen geen extentie en moeten deze ook niet krijgen, de files worden namelijk door andere software uitgelezen.


    Code:
    Private Sub Programmanummer_DblClick(Cancel As Integer)
    
    DoCmd.OpenForm "TekeningProgrammaSubFrm"
    
    
    A = Programmanummer.Text
    
    X = ProgrammanummerIdMachineData
    
    B = DLookup("Machinenummer", "MachinesTabel", "IdMachineData=" & X)
    
    C = "Q:\"
    
    E = ".opt"
    
    
    D = C & B & "\" & A & E
    G = C & B & "\" & A & F
    
    
    Shell ("""notepad.exe"" """ & D & """"), vbNormalFocus
    
    
    
    End Sub

  2. #2
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Ik snap je niet helemaal; op basis van extensies kun je bepaalde bestanden (types) koppelen aan programma's en openen met dat programma. Daarvoor moet je dus een extensie hebben. Een bestand zonder extensie is uiteraard dan nooit te koppelen, want wat er niet is, kan niet gekoppeld. Lijkt mij duidelijk .
    Wat je wellicht wél kan doen, is dat programma openen met een parameter die het bestand inleest. Dat zou je in de documentatie van dat bestand moeten kunnen terugvinden. Dat zou je dan met het Shell commando wel voor elkaar moeten kunnen krijgen. Bestanden zonder extensies koppelen aan een programma? Lijkt mij stug dat dat lukt, want dan zou er op de hele wereld maar een programma mogen zijn dat zo werkt. Heb je er toevallig twee, dan zit je al in de drek, want met welke van de twee programma's zou je dan dat bestand automatisch geopend willen hebben? Laat staan als je drie programma's gebruikt op die manier. De droefenis wordt alleen maar groter
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  3. #3
    Op dit moment dwing ik met het script af dat een bestand dat eindigd op de extentie .opt wordt geopend met notepad.
    Er zitten echter in ook files tussen die geen extentie hebben.
    Files zonder extentie wil ik ook openen met notepad.

    De files hebben geen extentie omdat ze op in een interface zitten van machines lopen waarop geen extenties in het protocol zitten.
    Toch zijn de files goed leesbaar als ze te openen zijn in notepad, daarom zou ik graag een aanpassing willen waarbij, voor .opt of zonder extentie de file wordt geopend.
    De progamma's onderscheid je wel door een unieke naam, maar het is inderdaad op z'n minst merkwaardig dat deze geen extentie hebben.
    Laatst aangepast door Bergsma1 : 9 april 2021 om 07:14

  4. #4
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Als je zoiets van maakt dan gaat het goed

    Code:
    Sub VenA()
      c00 = "E:\temp\test\bsod2" 'D = C & B & "\" & A
      If Dir(c00 & ".opt") = "" Then c01 = c00 Else c01 = c00 & ".opt"
      If Dir(c01) <> "" Then Shell ("""notepad.exe"" """ & c01 & """"), vbNormalFocus
    End Sub
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  5. #5
    Bedankt! Oplossing werkt, met een kleine aanpassing

    Option Compare Database



    Code:
    Private Sub Programmanummer_DblClick(Cancel As Integer)
    
    DoCmd.OpenForm "TekeningProgrammaSubFrm"
    
    
    A = Programmanummer.Text
    
    X = ProgrammanummerIdMachineData
    
    B = DLookup("Machinenummer", "MachinesTabel", "IdMachineData=" & X)
        
    
    C = "Q:\"
    
    
    
      c00 = C & B & "\" & A
      If Dir(c00 & ".opt") = "" Then c01 = c00 Else c01 = c00 & ".opt"
      If Dir(c01) <> "" Then Shell ("""notepad.exe"" """ & c01 & """"), vbNormalFocus
    
    
    
    
    
    
    End Sub

  6. #6
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Da's mooi. en mag je de vraag op opgelost zetten.

    Als je zoveel variabelen gebruikt dan zou ik ze in een logische volgorde zetten. Ontzettend veel witregels zou ik ook weglaten.
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  7. #7
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Wonderlijke code, als je het mij vraagt, en een beetje link ook.
    Code:
    DoCmd.OpenForm "TekeningProgrammaSubFrm"
    A = Programmanummer.Text
    Een formulier met de naam f TekeningProgrammaSubFrm suggereert dat het formulier een subformulier is. Een subformulier is niets anders dan een formulier dat op een ander formulier staat en daar is gekoppeld. Subformulieren worden dus nooit zelfstandig geopend, dat gebeurt via het hoofdformulier. Dus ik vind de naam heel onhandig op zijn minst.

    En als je een waarde middels zo’n procedure uitleest, gebruik dan altijd Value en niet .Text. Text kun je alleen gebruiken als het object de focus heeft. Zo niet, dan krijg je een foutmelding. Ik gebruik .Text dus alleen bij een gebeurtenis als OnChange, waarbij je binnen een tekstvak aan het redigeren bent.
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  8. #8
    Quote Origineel gepost door OctaFish Bekijk Bericht
    Wonderlijke code, als je het mij vraagt, en een beetje link ook.
    Code:
    DoCmd.OpenForm "TekeningProgrammaSubFrm"
    A = Programmanummer.Text
    Een formulier met de naam f TekeningProgrammaSubFrm suggereert dat het formulier een subformulier is. Een subformulier is niets anders dan een formulier dat op een ander formulier staat en daar is gekoppeld. Subformulieren worden dus nooit zelfstandig geopend, dat gebeurt via het hoofdformulier. Dus ik vind de naam heel onhandig op zijn minst.

    En als je een waarde middels zo’n procedure uitleest, gebruik dan altijd Value en niet .Text. Text kun je alleen gebruiken als het object de focus heeft. Zo niet, dan krijg je een foutmelding. Ik gebruik .Text dus alleen bij een gebeurtenis als OnChange, waarbij je binnen een tekstvak aan het redigeren bent.
    Bedankt voor de tips! Ik heb .text vervangen door .value.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl

Regels
Help

Helpmij.nl en business

Partners
Sponsoren