AndreasCMedlem sedan mars 20011 964 inlägg Hejsan. Behöver lite hjälp med en funktion jag vill ha i en accessdatabas. Jag har ett underformulär i ett vanligt formulär som baseras på uppgifter hämtade från en vanlig tabell. Jag vill lägga till ett fält i denna tabell. Det ska vara en knapp eller liknande i underformuläret sedan som hämtar uppgifter från detta fält i tabellen.
När man trycker på knappen så ska ett annat formulär öppnas och det ska öppnas med en specifik post. Alltså, att bara öppna ett formulär med en knapp är ju enkelt. Det kan man ju göra genom att skapa en knapp i designläget i Access och ange vilket formulär som ska öppnas med knappen, men hur gör jag om jag vill att man ska hamna i en viss post i detta formulär när man trycker på knappen? Jag måste väl göra någon form av koppling men hur?
Knappen ska alltså finnas vid varje post i det underformulär jag pratade om nyss och ska öppna olika poster beroende på vilken post i underformuläret man trycker på knappen vid. Jag vet inte men det är lite krångligt att förklara men hoppas ni förstår vad jag menar.
Låt oss säga att underformuläret ser ut så här där varje namn eller rad utgör en post.
Knapp | Johan
Knapp | Ture
Knapp | Tomas
Knapp | Stefan
Knapp | Yngve
Knappen tillsammans med namnet utgör en post där knappen är en cell och namnet en annan. När man trycker på knappen intill Stefan så ska ett nytt formulär med Stefans uppgifter öppnas. Hur? Snälla hjälp.
AndreasCMedlem sedan mars 20011 964 inlägg Ingen aning?
Ingen som har någon aning?
Nu är jag ingen hejare på Access men jag har gjort ngt liknande och kan bara peka i förhoppningsvis någon riktning.
Ditt nya underformulär bör baseras på en fråga och hur man får in värdet från aktuell post i ditt huvudformulär till frågan vet jag tyvärr inte så här på nattkvisten, men på något vis bör det gå tycker jag.
Janne A
AndreasCMedlem sedan mars 20011 964 inlägg Är inte så bra på frågor. Någon som kan specificera?
AndreasCMedlem sedan mars 20011 964 inlägg Vart börjar jag? Ingen som kan detta?
sawMedlem sedan mars 20011 880 inlägg Ett altenativ är att koppla överformuläret med underformuläret. Då skall du kunna koppla ihop detta via egenskaperna i under-formuläret.
Vi antar att du i huvudformuläret kallar ett fält för PersonNr och i underformuläret kallar ett fällt för kundNr.
Se till att du står i design-läge och makera underformuläret. Klicka på egenskaper för underformuläret. Välj flicken data. I fältet LÄNKA FRÅN skriver du in KundNr och i fältet LÄNKA TILL skriver du PersonNr.
Men om jag uppfattade dig rätt, så har du en knapp i underformuläret som du vill klicka på, för att öppna nytt formulär. Jag skall se om jag kan fixa det...
;)
Börja med att skapa ett nytt makro.
Under INSTRUKTION väljer du ÖppnaFormulär.
Under formulärnamn väljer du det nya formuläret.
Sen under WHERE-vilkor skall du göra någonting i denna stilen:
Jag tar ett exempel från en av mina databaser:
[KundNr]=[Formulär]![F-Registrering]![PersonNr]
På ett ungefär så tror jag att du nu har lite grand att öva på.
:e
AndreasCMedlem sedan mars 20011 964 inlägg Det där sista du sa verkar intressant men vad menar du med [KundNr]=[Formulär]![F-Registrering]![PersonNr]?
Istället för formulär ska jag skriva namnet på underformuläret eller? Och vad står F-Registrering för?
AndreasCMedlem sedan mars 20011 964 inlägg Har skrivit såhär nu:
[Skådespelare]=[Formulär]![F-Registrering]![name]
I detta fallet så har jag ett fält i underformuläret som jag kallar Skådespelare. I formuläret som ska öppnas så har jag ett fält som heter name. I dessa två fält står samma information. Alltså namnet på skådespelaren. Det är dessa två fält som jag vill ska gämföras, tror jag. När man sedan kör makrot via någon knapp sedan så ska alltså dessa två fält gämföras och motsvarande information ska poppa upp i det nya formuläret där fältet name finns????
Men det funkar hursomhelst inte så bra. Jag vet inte om det vart rätt men när jag försöker öppna makrot så ber Access mig att skriva Skådespelare, när det är gjort ber han mig skriva in värdet för Formulär!F-Registrering!name. Vad är det som är fel eller fattas det helt enkelt något?
AndreasCMedlem sedan mars 20011 964 inlägg Jag har länkat ihop två fält från två olika formulär tidigare med en knapp. När man skapar en knapp så kan man ju välja att öppna ett formulär med den, och sedan kan man välja att visa en viss information genom att länka ihop två fält. Men hur kan jag få in en knapp för varje post i underformuläret då? Det är det som behövs sedan tror jag att det kan lösa sig. Knappen gämför ju på detta sätt innehållet i ett fält som finns i samma post som knappen man trycker på med innehållet i det fält i formuläret man öppnar. Men problemet är då bara att få dit en knapp i varje post i underformuläret??????
AndreasCMedlem sedan mars 20011 964 inlägg Jag är på god väg nu men inte riktigt på det klara med hur det ska funka. Jag har lyckats få in en fungerande knapp nu i underformulärets formview, men hur får jag knappen att synas respektive funka i datasheet view?
AndreasCMedlem sedan mars 20011 964 inlägg Förutom frågan åvan så har jag en annan fundering. Jag har en tabell med en massa uppgifter. Jag har sedan tre-fyra stycken formulär som alla hämtar uppgifter från en och samma tabell. Men oavsett vilket formulär jag öppnar så visas ju samtliga poster från tabellen. Låt oss säga att i det första formuläret så har jag ett fält som heter namn. I det andra har jag ett som heter Född I. När jag öppnar det andra formuläret så vill jag bara att de poster som har någon information i fältet Född I ska visas. Alla andra poster ska filtreras bort. Givetvis ska det vara likadant med de andra formulären också fast med varierande namn på fält. Hur fixar man ett filter för detta?
AndreasCMedlem sedan mars 20011 964 inlägg Jag har ändrat fältet för skådespelare i underformuläret genom att ändra till hyperlink istället för text i källtabellen. Kan detta vara en lösning? Kan jag ange något värde eller liknande för fältet så att det blir precis som knappen jag beskrev ovan? Att när man klickar på en länk (en skådespelares namn) så öppnas ett annat formulär och så gämförs informationen i det fält där länken finns med ett annat fält i det nya formuläret.
Hur skriver man detta?
sawMedlem sedan mars 20011 880 inlägg Först ett förtydligande:
När det gäller denna kodsnutten:
[KundNr]=[Formulär]![F-Registrering]![PersonNr]
Så är KundNr ett fält, F-Registrering ett namn på ett formulär. Resten tror jag att du hajar.
När det gäller dom sista frågorna, så istället för filter, så skulle jag göra ett antal frågor som sen formulären baseras på.
Att göra frågorna är inte speciellt svårt. Klicka på frågor till vänster i databasbladet. välg ny i designläge och basera frågan på den tabell där du har din information.
klicka på dom fält i fältlistan som du vill ha med. Ställ sedan vilkoren i frågerutan.
Jag hoppas att du förstår... :D
AndreasCMedlem sedan mars 20011 964 inlägg Förstår inte riktigt. Jag har skapat en fråga nu och angett alla fält som ska vara med. Men vad ska det vara för villkor? Är inte så bra på detta men jag fattar nog om du förklarar bara lite mer. Hur länkar jag sedan ihop frågan med formuläret?
sawMedlem sedan mars 20011 880 inlägg Vilkor innebär att du vill välja ut någonting ifrån databasen.
Antag att du under fältet namn i skådespelare vill ta fram skådespelare Anita Björk. Då skriver du det i ditt vilkor.
Jag skall ge dig lite mera detaljer i morgon, då jag kommer till jobbet.
AndreasCMedlem sedan mars 20011 964 inlägg Du skulle hjälpa mig idag??
sawMedlem sedan mars 20011 880 inlägg Hej!
Jag är ledsen, men min tid bara försvann i går.
Jag skall försöka att hjälpa dig, men eftersom jag inte har din applikation, och inte är helt säker på vad du vill ha ut, så får jag spåna lite.
Vi börjar med att lägga till en knapp i ditt formulär. Klicka sedan på egenskaperna på knappen. Under HÄNDELSE välj vid klickning. Om du klickar där, så öppnas en listruta, och du kan välja [händelseprocedur]. Klicka därefter på knappen med dom tre punkterna till höger om. Detta tar dig till modulfönstret.
Där skriver du in:
Dim sSql As String
On Error Resume Next
Set db = DBEngine(0)(0)
sSql = "SELECT * FROM DIN_TABLE"
db.Execute sSql
db.Close
När det gäller sSql så är det frågeställningen vad du vill visa. Du kan kopiera SQL:en i från din fråga.
Vad du skall ha för vilkor i din fråga, kan jag inte avgöra, det är ju du som vet vad du vill ha för resultat, eller hur??
Jag kan ge dig ett annat tips, vill du ha en sökruta??
Här kommer koden. Tänk nu på att jag har kopierat ifrån mig, och du måste ändra namnen så det passar dig.
Lägg till en textruta som du kallar för txtsök.
Lägg till en knapp som du kallar för knSök.
I egenskaperna för knSök/Händelse/vid klickning/händelseprocedur och sedan modulfönstret.
Dim strMsg
If Len([txtsök]) = 3 And IsNumeric(txtsök) Then
Me.RecordsetClone.FindFirst "[Loggnr] = " & Me![txtsök]
Me.BookMark = Me.RecordsetClone.BookMark
txtsök.Value = ""
ElseIf Len([txtsök]) = 11 Then
Me.RecordsetClone.FindFirst "[PersonNr] = '" & Me![txtsök] & "'"
Me.BookMark = Me.RecordsetClone.BookMark
txtsök.Value = ""
Else
txtsök.Value = ""
MsgBox "Här är det galet, " & Chr(10) & "Du måste ha ett tre siffrigt loggnummer för att kunna söka på loggnummer," & Chr(10) & "eller ett fullständigt personnummer för att söka på personnummer!", vbInformation, "Resurshuset i Växjö"
Tänk nu på att i mitt fall, så söker man på loggnr eller personnr, så det måste du ändra.
Testa och prova.
:h
AndreasCMedlem sedan mars 20011 964 inlägg Jag får verkligen järnsläpp på detta. Jag tänkte att jag kanske kan skicka dig min databas så kan jag ange exakt vad jag vill göra med den. Du kan väl kolla på den och titta ifall du kan lösa det åt mig. Det är dels detta med att jag bara vill välja ut vissa poster att visa i ett av formulären när jag öppnar det, med hjälp av någon fråga eller liknande. Och så sedan detta med underformuläret, när man klickar vid ett namn där i underformuläret så ska motsvarande post öpnnas. Jag har testat att göra en länk av varje namn i underformuläret men då funkar inte en del urvalsfrågor jag har. Jag kan skicka med vidare detaljer också så du ser exakt vad jag menar. Databasen är i formatet Access 2002. Jag är beredd att betala en mindre summa också ifall du bara talar om hur mycket du vill ha. Jag tror att detta är väldigt lättlöst och går snabbt för en som är lite mera van med databaser och som förstår sig på olika sammanhang och kopplingar mer än vad jag gör. Vad tror du?
sawMedlem sedan mars 20011 880 inlägg Först och främst.
Här på Webforum så handlar det inte om pengar, vi försöker att hjälpa varandra. Så det glömmer vi.
Jag hade först den tanken också, att jag kunde ta hem databasen, men jag är väldigt uppbokad, så jag är rädd för att jag inte har tid.
Du bör nog försöka att läsa lite om ACCESS, det finns många väldigt bra böcker. På nätet finns massor av länkar.
När det sen kör ihop sig, så försöker vi här på forumet hjälpa till så gott vi kan.
AndreasCMedlem sedan mars 20011 964 inlägg Ok men om du tar hem databasen när du har tid med det?? Inga pengar inblandade. Jag fattar inte detta, det är för krångligt. Det finns gränser för vad jag kan lära mig :)