webForumDet fria alternativet

Söka i accessdatabas genom att skriva i formulär

Kontorsprogram

13 svar · 361 visningar · startad av Type

Medlem sedan mars 20021 239 inlägg
Frågan#1

Hej alla!
Jag är asnybörjare på access och sommarjobbar. de vill att jag ska försöka mig på en databas där de vill kunna söka efter olika värden.

Jag vill skapa ett formulär som man kan fylla i tex namn och telefon och om man trycker på sök i databasen ska man få upp alla poster där namnet och telefonnummret stämmer med det man skrivit in.

jag vill även att om man bara väljer att skriva i ett av fälten ska man få upp alla som matchar det man skrivit i det fältet.

Jag hoppas någon förstår mitt problem och kan hjälpa mig snart...

/ Type

Medlem sedan feb. 20001 507 inlägg
#2

Enklast är nog att använda de inbyggda guider som finns.
Gör en fråga med de kriterier som du vill ha med och sedan ett formulär som bareras sig på denna fråga.

Medlem sedan mars 20021 239 inlägg
#3

jag förstår inte

Att skapa en fråga där man väljer vilka kolumner man ska ta med fixade jag nog. nu syns alla värdena när jag dubbelklickar på min fråga... är det rätt så långt?

Sen när jag ska koppla ett formulär till den frågan blir det knas. jag kör guiden och får upp sen infon som står u frågan i formulärrutorna. Jag vill ju få upp ett formulär som jag kan söka i, inte ett som redan är fullt! Man måste på något sätt ändra frågan till att istället för att ta hela kolumnerna bara ta det man söker efter.

visst?

Medlem sedan feb. 20001 507 inlägg
#4

Öppna i designläget för frågan, i fältet 'Namn' (om du nu har det namnet)skriver du [Ange Namn]. Då får du upp en dialogruta som du kan söka i när du kör din fråga. Vill du även söka i fältet 'Telefon' skriver du lika där [Ange Telefon].
Förutsatt att du har Svensk version.

Medlem sedan feb. 20001 507 inlägg
#5

Skickar med ett exempel.

Medlem sedan mars 20021 239 inlägg
#6

Tack

Nu funkar det.. när man ska söka på en i taget

om jag istället vill kunna söka på flera värden. Tex namn och telefon, hur ska jag göra det då?

Nu får man först skriva i namn och sen skriva i telefon (om man skriver [Ange ...] på bådas villkor

jag vill ha ett formulär där man fyller i båda värdena. Det ska också gå o fylla i bara ett och lämna det andra tomt. Då ska frågan plocka ut värdena där det ifyllda stämmer. förstår du?

Medlem sedan mars 20021 239 inlägg
#7

Borde man inte kunna skriva in en läcker liten sql-sats.. nåt i stil med:

SELECT Info_tabell.Rubrik, Info_tabell.Ordernummer, Info_tabell.Orderansvarig, Info_tabell.Kund, Info_tabell.Kundhandläggare, Info_tabell.År
FROM Info_tabell
WHERE (((Info_tabell.Ordernummer)=[Ange Ordernummer]) OR (Info_tabell.Rubrik)=[Ange Rubrik]));

Neeee, det funkar inte.. väl?

Nu har jag testat det jag skrev.. fanns ju ett fält som hette eller!

Jo, det funkar väl sådär.. jag vill dock ha de på samma sida.. fälten ska synas samtidigt.. går det?

Medlem sedan mars 20021 239 inlägg
#8

Måste man få upp en ruta man skriver i eller går det att skicka med ett värde som man skriver i i formuläret innan? Jag kommer använda mig av en listruta, men principen borde va den samma...

Det vore jättebra..

Äre brist på access-kunniga människor här eller???

Medlem sedan feb. 20001 507 inlägg
#9

Ändrat min databas lite och lagt till ett sökningsformulär, det skall inte vara några problem med en listruta.

Principen är ett Sökningsformulär som öppnar ett nytt Formulär som får sitt värde från en fråga som baseras på Sökningsformuläret.

Rörigt :q

Medlem sedan mars 20021 239 inlägg
#10

inte direkt rörigt, men det funkar inte.. i sql-koden står det OR alltså Namn eller Telefonnummer. Dock går det inte att bara skriva i telefon, den hittar inget då. varför vet jag inte...

Annars börjar jag förstå mer o mer.. dock är inte allt klart.

Jag vill ha två stycken listrutor.. om man bara fyller i en ska den söka på det, men om den söker båda ska den söka alla som innehåller BÅDA! inte alla som innehåller någon av de två.

förstår du?

Tror att din databas inte fixar det.. eller?

Medlem sedan mars 20021 239 inlägg
#11

Nu funkar det med en listruta för mig. Dock får jag inte den andra listrutan att funka samtidigt..

Jag tror det har o göra med detta:

stDocName = "sökresultat"

stLinkCriteria = "[KategoriID]=" & "'" & Me![kategoriruta] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Den som fungerar heter kategoriruta och ska jämföras med KategoriID. Det funkar perfa. Men den andra som heter kompetensruta och ska jämföras med kompetensID tror jag knasar. eller rättare sagt; den jämförs ju aldrig. Detta är det man hittar om man kör skapa händelse... på sökknappen i sökformuläret.

Jag har försökt knåpa ihop någonting. Vet inte alls om man kan göra så här men upplys mig gärna :)

If (Me![kategoriruta] = 0 And Me![Kompetensruta] = 0) Then
DoCmd.OpenForm stDocName, , , stLinkCriteria
ElseIf (Me![kategoriruta] = 0) Then
stLinkCriteria = "[KompetensID]=" & "'" & Me![Kompetensruta] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
ElseIf (Me![Kompetensruta] = 0) Then
stLinkCriteria = "[KategoriID]=" & "'" & Me![kategoriruta] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Else
stLinkCriteria = "[KategoriID]=" & "'" & Me![kategoriruta] & "'"
stLinkcriteria2 = "[KompetensID]=" & "'" & Me![Kompetensruta] & "'"
DoCmd.OpenForm stDocName, , stLinkCriteria, stLinkcriteria2
End If

Tack för hjälpen :stud

Medlem sedan feb. 20001 507 inlägg
#12

Jag är inte så där jättehaj på detta med access men jag får fram detta när jag tetas lite

Dim stDocName As String
    Dim stNamnCriteria As String
    Dim stTeleCriteria As String

    stDocName = "adress Fråga"
    
    stTeleCriteria = "[telefon]=" & "'" & Me![telefon] & "'"
    stNamnCriteria = "[namn]=" & "'" & Me![namn] & "'"
    DoCmd.OpenForm stDocName

Det är alltså inget tillägg efter Do.Cmd

Är det då 2 olika värden i sökningen som inte matchar på samma post så visar formuläret med de poster som matchar.
Det är inte riktigt så du vill va ?

Medlem sedan mars 20021 239 inlägg
#13

Det jag försökte göra med min fina IF-sats var att den skulle kolla om det var ifyllt. om Inget är ifyllt ska den ju visa alla och om bara en är ifylld ska alla visas som matchar den. Om båda visas ska de som matchar båda visas.

Jag vet inte om din kodsnutt hjälper, hinner inte testa det. får göra det efter helgen då jag börjar jobba igen!

Lämna gärna ny kodsnutt om du kommer på något annat, eller om någon annan gör det!

/MVH Type/Tack för hjälpen

Medlem sedan feb. 20001 507 inlägg
#14

Tänk på att du kan styra det med SQL i frågan också, formuläret skickar bara vad som är valt i dina fält.

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)