Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


sökfunktion i access

Postades av 2004-12-14 09:18:29 - Linda Lindström, i forum access, Tråden har 4 Kommentarer och lästs av 1360 personer

Jag skall konstruera en sökfunktion i access. Sökningen skall gå till så att man i ett fält skriver in ett sökord, tex företag, kommun eller liknande. Min databas har jag byggt upp genom flera tabeller och jag vill att sökningen skall gå igenom samtliga tabeller.
Vidare vill jag på något smart sätt kunna lista de träffar som fås i sökningen. Hur gör man det på bästa sätt så att det blir så enkelt som möjligt för både användaren och mig, (för mig framför allt *S*).
Sidor om hur man går tillväga eller förklaringar emottages tacksamt. Är ganska grön på det här med access så jag behöver pedagoger här =)


Svara

Sv: sökfunktion i access

Postades av 2004-12-14 14:23:12 - Niklas Östergren

Hmm, detta är inte helt trivialt. Speciellt om du har liten eller ingen vana alls att jobba med VBA.

Börja med att skapa en procedur som söker igenom ett bestämt fält i en bestämd tabell. Jag föredrar att använda mig ac DAO.Recordset för detta ändamålet enl. följande:

'====================
Public Function FindMatchingRecords (strTableName As String, strFieldName As String, strSearchedString As String) As Boolean

Dim db As DAO.Database
Dim rec As DAO.Recordset
Dim strSQL As String
Dim strMatches As String

Set db = CurrentDb()

strSQL = "SELECT " & strTableName & "." & strFieldName & " FROM " & strTableName _
& " WHERE " & strFieldName & " = " & strSearchedString


'Open the recordset
Set rec = db.OpenRecordset (strSQL, dbOpenDynaset)

rec.MoveLast
If Not rec.RecordCount <> 0 Then
MsgBox"Inga poster hittades"
rec.Close
Set rec = Nothing
FindMatchingRecords = False
Exit Function
End If

rec.MoveFirst
Do Until rec.EOF
strMatches = rec!strFieldName & " " & strMatches & vbCrLf
rec.MoveNext
Loop

MsgBox"Följande träffar hittades: " & vbCrLf & strMatches

FindMatchingRecords = True


'Clean up
rec.Close
Set rec = Nothing

End Function

För att kunna använda denna funktion måste du bifoga följande:

strTableName = Namnet på den tabell du vill söka i (ex. "tblContacts")
strFieldName = Namnet på fältet i tabellen du vill söka i (ex. "City")
strSearchedString = Texten du söker efter (ex. "Stockholm")

Denna funktion söker och returnerar bara texter. Behöver du söka efter tal eller datum måste man göra funktioner för detta också. Genom att loopa igenom hela din databas och ange samtliga tabeller och samtliga fält i samtliga tabelller kan du sedan söka igenom hela databasen.

En tanke bara:
Är det inte lite väl onödigt och söka efter en specifik uppgift i samtliga tabeller och samtliga fält om du VET att uppgiften inte kan finnas i en tabell/fält?

Man behöver ju text inte söka efter texten "Stockholm" i fältet [PersonNr]


// Niklas


Svara

Sv: sökfunktion i access

Postades av 2004-12-14 14:23:18 - Niklas Östergren

Hmm, detta är inte helt trivialt. Speciellt om du har liten eller ingen vana alls att jobba med VBA.

Börja med att skapa en procedur som söker igenom ett bestämt fält i en bestämd tabell. Jag föredrar att använda mig ac DAO.Recordset för detta ändamålet enl. följande:

'====================
Public Function FindMatchingRecords (strTableName As String, strFieldName As String, strSearchedString As String) As Boolean

Dim db As DAO.Database
Dim rec As DAO.Recordset
Dim strSQL As String
Dim strMatches As String

Set db = CurrentDb()

strSQL = "SELECT " & strTableName & "." & strFieldName & " FROM " & strTableName _
& " WHERE " & strFieldName & " = " & strSearchedString


'Open the recordset
Set rec = db.OpenRecordset (strSQL, dbOpenDynaset)

rec.MoveLast
If Not rec.RecordCount <> 0 Then
MsgBox"Inga poster hittades"
rec.Close
Set rec = Nothing
FindMatchingRecords = False
Exit Function
End If

rec.MoveFirst
Do Until rec.EOF
strMatches = rec!strFieldName & " " & strMatches & vbCrLf
rec.MoveNext
Loop

MsgBox"Följande träffar hittades: " & vbCrLf & strMatches

FindMatchingRecords = True


'Clean up
rec.Close
Set rec = Nothing

End Function

För att kunna använda denna funktion måste du bifoga följande:

strTableName = Namnet på den tabell du vill söka i (ex. "tblContacts")
strFieldName = Namnet på fältet i tabellen du vill söka i (ex. "City")
strSearchedString = Texten du söker efter (ex. "Stockholm")

Denna funktion söker och returnerar bara texter. Behöver du söka efter tal eller datum måste man göra funktioner för detta också. Genom att loopa igenom hela din databas och ange samtliga tabeller och samtliga fält i samtliga tabelller kan du sedan söka igenom hela databasen.

En tanke bara:
Är det inte lite väl onödigt och söka efter en specifik uppgift i samtliga tabeller och samtliga fält om du VET att uppgiften inte kan finnas i en tabell/fält?

Man behöver ju text inte söka efter texten "Stockholm" i fältet [PersonNr]


// Niklas


Svara

Sv: sökfunktion i access

Postades av 2004-12-14 14:23:28 - Niklas Östergren

Hmm, detta är inte helt trivialt. Speciellt om du har liten eller ingen vana alls att jobba med VBA.

Börja med att skapa en procedur som söker igenom ett bestämt fält i en bestämd tabell. Jag föredrar att använda mig ac DAO.Recordset för detta ändamålet enl. följande:

'====================
Public Function FindMatchingRecords (strTableName As String, strFieldName As String, strSearchedString As String) As Boolean

Dim db As DAO.Database
Dim rec As DAO.Recordset
Dim strSQL As String
Dim strMatches As String

Set db = CurrentDb()

strSQL = "SELECT " & strTableName & "." & strFieldName & " FROM " & strTableName _
& " WHERE " & strFieldName & " = " & strSearchedString


'Open the recordset
Set rec = db.OpenRecordset (strSQL, dbOpenDynaset)

rec.MoveLast
If Not rec.RecordCount <> 0 Then
MsgBox"Inga poster hittades"
rec.Close
Set rec = Nothing
FindMatchingRecords = False
Exit Function
End If

rec.MoveFirst
Do Until rec.EOF
strMatches = rec!strFieldName & " " & strMatches & vbCrLf
rec.MoveNext
Loop

MsgBox"Följande träffar hittades: " & vbCrLf & strMatches

FindMatchingRecords = True


'Clean up
rec.Close
Set rec = Nothing

End Function

För att kunna använda denna funktion måste du bifoga följande:

strTableName = Namnet på den tabell du vill söka i (ex. "tblContacts")
strFieldName = Namnet på fältet i tabellen du vill söka i (ex. "City")
strSearchedString = Texten du söker efter (ex. "Stockholm")

Denna funktion söker och returnerar bara texter. Behöver du söka efter tal eller datum måste man göra funktioner för detta också. Genom att loopa igenom hela din databas och ange samtliga tabeller och samtliga fält i samtliga tabelller kan du sedan söka igenom hela databasen.

En tanke bara:
Är det inte lite väl onödigt och söka efter en specifik uppgift i samtliga tabeller och samtliga fält om du VET att uppgiften inte kan finnas i en tabell/fält?

Man behöver ju text inte söka efter texten "Stockholm" i fältet [PersonNr]


// Niklas


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 770
27 960
271 761
478
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies