Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Über Access SQL Tabelle durchsuchen

Frage Microsoft Microsoft Office

Mitglied: chrislm

chrislm (Level 1) - Jetzt verbinden

14.09.2012, aktualisiert 11:02 Uhr, 5715 Aufrufe, 10 Kommentare

Hallo.
Ich habe heute die Access Datenabnk auf sql portiert. Es funktioniert auch alles bisauf das das durchsuchen einer Spalte in einer Tabelle unheimlich lange dauert.

Kann man das irgendwie besser hinbekommen..?
Im moment wird in das Datenfeld geklickt und dann auf strg + f
Mitglied: attix22
14.09.2012 um 12:07 Uhr
Hi,

mit was genau arbeitest du jetzt? MySQL, Oracle ....
Welche Oberfläche benutzt du?

Je nachdem was du durchsuchen willst, solltest du Indizes anlegen.
Das spart eine Menge Zeit. (Was aber bei deinem Strg + F genau gemacht wird weis ich ja nicht.)

Ohne weiter Infos kann ich dir aber auch nicht mehr sagen.

Gruß
Bitte warten ..
Mitglied: chrislm
14.09.2012 um 12:11 Uhr
Also Frontend Access und als Backend Microsoft SQL
Das Suchen läuft über das Formular, einfach in das Feld klicken und dann mit der Accesseigenen Suchfunktion.
Bitte warten ..
Mitglied: attix22
14.09.2012 um 12:21 Uhr
Hm da kann ich dir dann erstmal nicht weiterhelfen.
Probiers mal mit Indizes auf die Spalten die du brauchst und wo es Sinn macht.
Wie du das aber in Access hinbekommst weis ich nicht.
Falls du mit SQL bewandert bist, schreib dir doch einfach nen Select auf das von dir gesuchte.

Gruß
Bitte warten ..
Mitglied: n4426
14.09.2012 um 17:10 Uhr
Hi,

das Problem bei der Access-Such-Funktion ist, dass vorher die ganze Tabelle vom SQL-Server geladen wird. Das kann je nach Tabellengröße etwas dauern. Ich würd auch über einen Select arbeiten.

Gruß
Bitte warten ..
Mitglied: chrislm
14.09.2012, aktualisiert um 19:06 Uhr
Kann mir jemand eine Beispiel zeigen, eventuell ein Link wie man das macht..?
Meine Idee war die dass ich ein Textfeld in das Formular lege welches dann zum suchen genutzt wird. Über eine Ereignisprozedur wollte ich dann die suche starten. Aber ich bekommen es nicht hin den Sqlbefehl über das vba zu starten. Falls mir das irgendwann mal gelingt, wollte ich die ID ins Feld ID übermittel mit Me!
Bitte warten ..
Mitglied: NetWolf
14.09.2012 um 21:02 Uhr
Grüß Gott,

nochmal genauer nachgefragt: welche Access Version nutzt du? und welchen MS SQL Server auf welchem Betriebssystem?
Der SQL-Server läuft lokal, oder auf einem Server im Netzwerk?

Bitte schreibe immer deinen Kenntnisstand dazu. Dann kann man die Antworten ausführlicher gestalten, wenn du Anfänger bist.
Das erspart dir eine Menge Frust und uns eine Menge Nachfragen.

SQL unter VBA geht z.B. so:

Dim MySQL as String

MySQL = "Select ......"
Docmd.runsql MySQL


Thema "Suche": erstelle im Kopfbereich des Formulars ein Pulldown-Feld für die Suche in einem Feld. Nutzt dafür den Assistenten!!

Grüße aus München
Wolfgang
(Netwolf)
Bitte warten ..
Mitglied: chrislm
17.09.2012, aktualisiert um 09:29 Uhr
Danke schon einmal für eure Bemühungen. Meine Strategie sieht so aus:
01.
Private Sub Text64_AfterUpdate() 
02.
Dim strSQL As String, varAVG 
03.
strSQL = "SELECT Erfassung.[ID] * [FROM Erfassung] * WHERE (((Erfassung.[ID])=[ID]));" 
04.
DoCmd.RunSQL strSQL 
05.
Me!ID = varAVG 
06.
End Sub
Dabei meckert er mir das irgendein Argument fehlerhaft ist...
ICh bastele in Access 2010 aber laufen muss es unter Access 2000....
Bitte warten ..
Mitglied: chrislm
18.10.2012 um 11:50 Uhr
Zitat von NetWolf:
Grüß Gott,

nochmal genauer nachgefragt: welche Access Version nutzt du? und welchen MS SQL Server auf welchem Betriebssystem?
Der SQL-Server läuft lokal, oder auf einem Server im Netzwerk?

Bitte schreibe immer deinen Kenntnisstand dazu. Dann kann man die Antworten ausführlicher gestalten, wenn du Anfänger
bist.
Das erspart dir eine Menge Frust und uns eine Menge Nachfragen.

SQL unter VBA geht z.B. so:

Dim MySQL as String

MySQL = "Select ......"
Docmd.runsql MySQL


Thema "Suche": erstelle im Kopfbereich des Formulars ein Pulldown-Feld für die Suche in einem Feld. Nutzt
dafür den Assistenten!!

Grüße aus München
Wolfgang
(Netwolf)

Diese Nummer ist klasse, es funktioniert wunderbar wenn mann weniger als, ich tippe mal 65000, Datensätze in der Datenbank hat. Aber darüber hinaus bekommt er das ganze nicht mehr hin, es werden darüber hinaus keine Datensätze mehr gefunden. Deswegen habe ich zwar eine andere Strategie die aber leider nicht so ganz funktioniert.

Ich habe noch ein Textfeld über das kombinationsfeld gelegt. Dieses Textfeld benutze ich als abfrage für die SQL Datenbank:
SELECT Erfassung.ID, Erfassung.Name, Erfassung.Vorname, Erfassung.Ort, FROM Erfassung
WHERE (((Erfassung.Name)=[Forms]![Erfassung]![Text74]))
ORDER BY Erfassung.Vorname;

Damit das Kobinationsfeld die Abfrage vergisst, lasse ich es vor dem Update des Feldes die Abfrage in dem Kombinationsfeld resetten denn sonst kann ich nicht wiederholt die Abfrage starten:
Me!Kombinationsfeld76.Requery

Jetzt zu meinem Problem, wenn ich nun die ganzen Suchfelder nach diesem Schema aufbaue, habe ich kein Platz mehr in dem Formular selbst. Nun wollte ich ein Suchformular erstellen welches die Daten dann an das "Kontrolle" Formular übergibt und da scheitert es. Ich weiß leider nicht wie ich die Abfrage auf ein anderes Formular übertragen kann.

Nochmal kurz: ich klicke auf suchen, Suchformuar geht auf mit den Feldern, ich suche z.B. nach Müller, finde den Müller in dem Kombinationsfeld, klicke ihn an und er springt mir dann in das Formular Kontrolle mit dem Herrn Müller.
Bitte warten ..
Mitglied: chrislm
18.10.2012, aktualisiert um 16:35 Uhr
Mittlerweile habe ich es soweit:
01.
Private Sub Kombinationsfeld16_AfterUpdate() 
02.
    ' Den mit dem Steuerelement übereinstimmenden Datensatz suchen. 
03.
    Dim rs As Object 
04.
    
05.
     
06.
    Set rs = Me.Recordset.Clone 
07.
    rs.FindFirst "[ID] = " & Str(Nz(Me![Kombinationsfeld16], 0)) 
08.
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark 
09.
    DoCmd.OpenForm "Kontrolle" 
10.
 
11.
    Forms!Kontrolle.SetFocus 
12.
 
13.
 If IsNull(Me!ID) Then 
14.
 
15.
 DoCmd.GoToRecord , , acNewRec 
16.
 Else 
17.
 Set rs = Forms!Kontrolle.RecordsetClone 
18.
 rs.FindFirst "ID = " & Me!ID 
19.
 Forms!Kontrolle.Bookmark = rs.Bookmark 
20.
 
21.
 End If 
22.
Errorhandler: 
23.
 If Err = 2450 Then 
24.
 DoCmd.OpenForm ("Kontrolle") 
25.
 Resume Next 
26.
 End If 
27.
     
28.
    
29.
End Sub 
30.
 
Da ich in die Abfrage einen genauen Wert eingebe, ist es nun Schwierig die SQL Abfrage nach ähnlichkeite, n abzusuchen wie z.B. ich suche nach Schmidt und es kommt dann auch der Schmidtbauer....
Bitte warten ..
Mitglied: chrislm
18.10.2012 um 16:45 Uhr
Ich habs:
über SQL kann man das auch:
01.
Wie [Forms]![Suche1]![Text13]
einfach das "Wie" vor das Kriterium und ich kann mit * suchen....
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Server
gelöst SQL-Tabelle portieren und dabei Daten konvertieren (1)

Frage von menace zum Thema Server ...

Datenbanken
Spalte in einer SQL-Tabelle auslesen. Werte durch Tab getrennt! (4)

Frage von Janekr77 zum Thema Datenbanken ...

VB for Applications
Mehrere Spalten Durchsuchen und Ergebnisse in neuer Tabelle Ausgeben (3)

Frage von Mr.Green zum Thema VB for Applications ...

VB for Applications
gelöst Xml-Datei laden bzw. auf Festplatte kopieren und per VBA in eine Access-Tabelle speichern (22)

Frage von machohunk zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...