Wolverin Skrevet 7. januar 2007 Del Skrevet 7. januar 2007 (endret) Er det noen som vet åssen jeg kan knytte f.eks Ctrl+space til en knapp som heter f.eks cmd_ny_post og som skal lage en ny post i et skjema? Har lett på hjelp og google men finner bare åssen man knytter en hurtigtast til en knapp ved bruk av makro i Word, Excel osv. BTW.. er det noen som kan si meg åssen jeg kan benytte en global variabel til å lagre hvilken ID (autofelt) posten jeg står på, slik at jeg kan slå opp på samme posten i et annet skjema jeg skal åpne? Forsøkt med meg en slik kode (ikke fullstendig kode, bare et illustrasjons eksempel) [/code]public aktiv_post as integer . . . . form_load id.setfocus id = aktiv_post end sub Siden variabelen er deklarert i det andre skjema, får jeg beskjed om at den ikke er deklarert. Men den er jo satt public, og da skal jo alle skjema kunne nå den... Endret 7. januar 2007 av Wolverin Lenke til kommentar
ravika Skrevet 7. januar 2007 Del Skrevet 7. januar 2007 (endret) Ikke helt sikker på hvordan benytte Global Variabel til å slå opp i skjemaet, men bør vel gå ann å bruke referanse til det skjemaet du lukker? (selv om en Golbal variabel nok ville vært det mest ideelle...) Vet heller ikke hvordan man knytter en hurtigtast opp mot en spesifikk knapp, men globale hurtigtaster for databasen kan legges til i macroen AutoKeys (må lagres med det navnet). I AutoKeys-macroen legger du til de hurtigtastene du ønsker databasen skal bruke ved å gi macroene navn som knytter de til hurtigtasten. Og velger selvfølgelig på vanlig måte hva macroen skal gjøre. Navnene på macroene du opptrettet bestemmer som sagt hurtigtastene. Eks: {F1} - for hurtigtasten F1 ^{F1} - for kombinasjonen Ctrl+F1 +{F1} - for kombinasjonen Shift+ F1 ALT kan ikke brukes til hurtigtaster, da den er reservert for forhåndsprogramerte hurtigtaster. EDIT: Tok et kjapt søk etter hvordan unngå at en hurtigtast er global og kom opp med denne microsoft-artikklen: ACC: How to Make the AutoKeys Macro Form-Specific Endret 7. januar 2007 av t0my Lenke til kommentar
Wolverin Skrevet 7. januar 2007 Forfatter Del Skrevet 7. januar 2007 Ikke helt sikker på hvordan benytte Global Variabel til å slå opp i skjemaet, men bør vel gå ann å bruke referanse til det skjemaet du lukker? (selv om en Golbal variabel nok ville vært det mest ideelle...) Vet heller ikke hvordan man knytter en hurtigtast opp mot en spesifikk knapp, men globale hurtigtaster for databasen kan legges til i macroen AutoKeys (må lagres med det navnet). I AutoKeys-macroen legger du til de hurtigtastene du ønsker databasen skal bruke ved å gi macroene navn som knytter de til hurtigtasten. Og velger selvfølgelig på vanlig måte hva macroen skal gjøre. Navnene på macroene du opptrettet bestemmer som sagt hurtigtastene. Eks: {F1} - for hurtigtasten F1 ^{F1} - for kombinasjonen Ctrl+F1 +{F1} - for kombinasjonen Shift+ F1 ALT kan ikke brukes til hurtigtaster, da den er reservert for forhåndsprogramerte hurtigtaster. EDIT: Tok et kjapt søk etter hvordan unngå at en hurtigtast er global og kom opp med denne microsoft-artikklen: ACC: How to Make the AutoKeys Macro Form-Specific 7666440[/snapback] Ja, jeg kan ordne det med å ikke lukke men bare skjule skjema jeg går fra, og dermed kan jeg referere til id feltet på det skjulte skjema med formen aktiv_post = [forms]![hoved]![id] Dette fungerer jo, men det er det jeg kaller spaghetti kode, jeg ønsker så veldig å bruke en variabel til å holde på denne informasjonen, men det fungerer ikke selv om jeg setter den til public. Virker som public bare fungere i det skjema den er aktuell for, mens jeg ønsker å få til å burke en hele databasen kan se. Den AutoKey greia forstod jeg ikke bruken av. Kan du skrive åssen jeg må gjøre det for å tilegne Ctrl+space til å få en ny post? Lenke til kommentar
ravika Skrevet 7. januar 2007 Del Skrevet 7. januar 2007 Den AutoKey greia forstod jeg ikke bruken av. Kan du skrive åssen jeg må gjøre det for å tilegne Ctrl+space til å få en ny post? 7666867[/snapback] Tror ikke SPACE, heller er en godkjent knapp som kan brukes i egenlagede hurtigtaster. Men kan prøve å forklare hvordan du setter opp en form-avhengig hurtigtast. 1. Først og fremst må du opprette den macroen som skal "trykke" på knappen. Macroen skal bestå av handlingene GåTilKontroll og SendTastetrykk. I GåTilKontroll refererer du til navnet på knappen eks: Kommando01 Mens tastetrykket skal være {ENTER} Lagre macroen med et passende navn. 2. Opprett en ny macro (som du MÅ lagre som AutoKeys) I AutoKeys-macroen skal du i feltet for Macronavn skrive inn hurtigtasten du vil bruke. Eks: ^{N} (for CTRL + N) 3. Som betingelse setter du [screen].[ActiveForm].[Name]="frm_1" (hvor frm_1 er navnet på skjemaet som skal bruke denne hurtigtasten. 4. Handlingen som skal utføres blir da KjørMacro (Her velger du den macroen som "trykker" på knappen i skjemaet.) Lenke til kommentar
ravika Skrevet 7. januar 2007 Del Skrevet 7. januar 2007 BTW.. er det noen som kan si meg åssen jeg kan benytte en global variabel til å lagre hvilken ID (autofelt) posten jeg står på, slik at jeg kan slå opp på samme posten i et annet skjema jeg skal åpne? 7666288[/snapback] Fant forresten ut hvordan man kan bruke Global Variabel til å slå opp med (Prøvde meg rett og slett bare frem, så tror det skal funke iværtfall...) Opprett en Module og definer den globale variabelen du ønsker: Global GlobalVariablelNavn As String Derfra setter du Navnet du gav den Globale Variablen = Me.ID.Value, når du går til nytt skjema (Før docmd.close). På Form_Load bruker du bare me.id.value = GlobalVariablelNavn Og et tips samtidig (la merke til d i koden din nå...): Du bruker SetFocus til å legge inn verdi i feltet. Det er mye bedre å referere direkte til feltet istedet (Me.ID.Value), du får en veldig krevende kode, da den må skifte fokus for hver handling. Lenke til kommentar
Wolverin Skrevet 7. januar 2007 Forfatter Del Skrevet 7. januar 2007 (endret) Ble så langt å quote alt fant jeg ut. Jeg fikk til kode for den globale variabelen nå. Laget meg en modul jeg kalte for deklareringer, hvor jeg laget en Global Aktivpost as Integer Global AktivID as Integer Så laget jeg følgende kode i Hoved form: aktivID= Me.ID.Value aktivpost = Me.CurrentRecord På detalj skjema, som skal åpne den samme posten og som skal ha ID fra forrige skjema så skrev jeg følgende: DoCmd.GoToRecord , , acGoTo, aktivpost Me.ID_felt = aktivid Da fungerer det som fy. Driver nå å forsøker å få til hurtigtast greiene, men syntes det var jævlig tungvint...hehe Endret 7. januar 2007 av Wolverin Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå