SQL (Access) Listenfeld mit bestimmten Daten füllen

Diskutiere SQL (Access) Listenfeld mit bestimmten Daten füllen im Programmierung Forum im Bereich Software Forum; Hallo, also ich habe 2 Tabellen. Tabelle 1 heist Arbeitsplätze und Tabelle 2 Peripherie. In Tabelle 1 wird ein PC Name eingetragen. Diesen Kann...
T

Trojacx

Threadstarter
Mitglied seit
10.05.2010
Beiträge
6
Hallo,

also ich habe 2 Tabellen.

Tabelle 1 heist Arbeitsplätze und Tabelle 2 Peripherie.

In Tabelle 1 wird ein PC Name eingetragen. Diesen Kann man in Tabelle 2 Auswählen um die Peripherie dem PC zuzuweisen.

Soweit so gut.

Im Formular für Tabelle 1 möchte ich nun ein Listenfeld haben, welches mir beim Öffnen eines Datensatzes alle dazugehörigen Peripheriegeräte des grade geöffneten Datensatzes/PCs anzeigt.

Für ein Listenfeld kann man ja eine Abfrage erstellen nur weis ich nicht mit welchem SQL Befehl ich das anstelle.

SELECT Peripherie.Bezeichnung
FROM Peripherie
ORDER BY Peripherie.Bezeichnung;

So zeigt er mit alles an was in Tabelle Peripherie ist mit der "Bezeichnung". Aber datt will ich ja nicht :D Funktionieren tuts aber mit dem Anzeigen im Listenfeld.


Jemand eine Idee? :confused


Gruß
 
Bullayer

Bullayer

Schwergewicht
Mitglied seit
19.07.2006
Beiträge
24.150
Standort
DE-RLP-COC
Auf den ersten Blick würde ich sagen, mit ner entsprechenden WHERE-Bedingung sollte sich das durchaus machen lassen.
 
T

Trojacx

Threadstarter
Mitglied seit
10.05.2010
Beiträge
6
Da bekomm ich aber immer den Fehler: Das mehrwertige Feld Peripherie.Computername kann nicht in einer WHERE oder HAVING Klausel verwendet werden.
:confused
 
A

AlienJoker

Gast
Versuche das ganze in Access als Abfrage zu basteln und die dann als Quelle zu verwenden.
 
T

Trojacx

Threadstarter
Mitglied seit
10.05.2010
Beiträge
6
Versuch das hier mal:

Code:
select * from tabelle2 where tabelle2.feld = tabelle1.feld
order by ....

Da bekomm ich auch den selben Fehler wie ich schon geschrieben hatte.


Und ich versuche das ja als Datensatzherkunfts Abfrage zu machen nur irgendwie geht das nicht.
 
A

AlienJoker

Gast
Code:
select * from tabelle2 where tabelle2.feld in 
(select tabelle1.feld from tabelle1 where tabelle1.feld ="myPCName")
order by...
woher du den PCNamen nimmst, musst du selbst wissen

/edit:
der händische zeilenumbruch in dem
Code:
-Tag ist echt nervig
 
T

Trojacx

Threadstarter
Mitglied seit
10.05.2010
Beiträge
6
Code:
select * from tabelle2 where tabelle2.feld in 
(select tabelle1.feld from tabelle1 where tabelle1.feld ="myPCName")
order by...
woher du den PCNamen nimmst, musst du selbst wissen

/edit:
der händische zeilenumbruch in dem
Code:
-Tag ist echt nervig[/QUOTE]


Ich bekomme einen Datentypen Konflikt Fehler.

SELECT *
FROM Peripherie
WHERE Arbeitsplatz.Computername in
(SELECT Arbeitsplatz.Computername FROM Arbeitsplatz WHERE Arbeitsplatz.Computername = "Peripherie.Computername");

Und wenn ich die Ausrufezeichen lasse bei "Peripherie.Computername", öffnet der mir ein Eingabefeld wo ich wohl was suchen kann.



Ich hab mal ein Screen gemacht wie das Arbeitsplatz Formular aussehen soll mit der Liste der dazugehörigen Peripherie.

Ein Datensatz wird geöffnet aus Tabelle Arbeitsplatz, sagen wir mal Rechnername1, und in einem Formular angezeigt (wie Bild), und alle Geräte sollen in der kleinen Liste angezeigt werden in Formular Arbeitsplatz (Siehe Bild) die in Tabelle Peripherie zu Rechnername1 gehören. Dabei kann man (wenn man unter Periperie einen neuen Datensatz anlegt) einen Rechnernamen auswählen, die sich die Peripherie Liste aus der Liste Arbeitsplätze holt.

[IMG]http://i43.tinypic.com/j8ft51.jpg[/IMG]
 
A

AlienJoker

Gast
1. Beide Felder für den Arbeitsplatznamen MÜSSEN as gleiche Format haben (text??) und die gleiche Länge (50 ist da standard)

2.
Code:
select * from tabelle2 where tabelle2.feld in 
(select tabelle1.feld from tabelle1 where 
tabelle1.feld =" & Forms!meinFormular!meinAuswahlfeld &")
sollte eigentlich tun

3. Bau das mal als Abfrage. Das geht bedeutend leichter, wenn man, wie du, kein SQL kann. In die Where-Bedingung fügst du mit dem Assistenten das Feld mit dem Arbeitsplatznamen aus dem Formular ein.
Diese Abfrage legst du dann als Datenquelle hinter dein Peripherie-Feld.
Danach macht du bei dem Arbeitsplatzfeld ein listenfeldname.requery an das Ereignis "nach Aktualisierung" im VB-Editor([Ereignisprozedur]) ein.
 
T

Trojacx

Threadstarter
Mitglied seit
10.05.2010
Beiträge
6
1. Beide Felder für den Arbeitsplatznamen MÜSSEN as gleiche Format haben (text??) und die gleiche Länge (50 ist da standard)

2.
Code:
select * from tabelle2 where tabelle2.feld in 
(select tabelle1.feld from tabelle1 where 
tabelle1.feld =" & Forms!meinFormular!meinAuswahlfeld &")
sollte eigentlich tun

3. Bau das mal als Abfrage. Das geht bedeutend leichter, wenn man, wie du, kein SQL kann. In die Where-Bedingung fügst du mit dem Assistenten das Feld mit dem Arbeitsplatznamen aus dem Formular ein.
Diese Abfrage legst du dann als Datenquelle hinter dein Peripherie-Feld.
Danach macht du bei dem Arbeitsplatzfeld ein listenfeldname.requery an das Ereignis "nach Aktualisierung" im VB-Editor([Ereignisprozedur]) ein.
Also mit dem Code bekomm ich den selben Fehler wie in meinem #3 Beitrag.

der Assistent baut mir folgende Abfrage:

SELECT Peripherie.Bezeichnung, Arbeitsplatz.Computername
FROM Arbeitsplatz INNER JOIN Peripherie ON Arbeitsplatz.Computername=Peripherie.Computername.Value;

Funktioniert nicht.
Viel kann man mit dem Assistenten aber nicht machen :D
Und das mit VB funktioniert auch nicht.


Womit mein Vorhaben aber z.B. funktioniert ist ein Tabellen Unterformular. Gestern zumindest. Habs grad probiert aber da stürzt Access 2010 ab. ^^
Und ich sehe auch so keinen SQL Code, und weis eben nicht wie das funktioniert.

EDIT: Das mit dem Unterformular geht wieder. 'Peripherie' für jeden Datensatz in 'Arbeitsplatz' mit 'ID' anzeigen << aber wie kann ich mir den SQL Code davon anzeigen lassen? :>
 
Zuletzt bearbeitet:
Thema:

SQL (Access) Listenfeld mit bestimmten Daten füllen

Sucheingaben

access kombinationsfeld sql-abfrage

SQL (Access) Listenfeld mit bestimmten Daten füllen - Ähnliche Themen

  • Download: Microsoft SQL Server Migration Assistant v6.0 für Access, MySQL, Oracle, Sy

    Download: Microsoft SQL Server Migration Assistant v6.0 für Access, MySQL, Oracle, Sy: Die SQL Server Migration Assitants v6.0 für <a href="http://www.microsoft.com/en-us/download/details.aspx?id=43690&WT.mc_id=rss_alldownloads_all"...
  • Whitepaper: Access Services für SQL Server 2012 und SharePoint Server 2013

    Whitepaper: Access Services für SQL Server 2012 und SharePoint Server 2013: Dieses <a href="http://www.microsoft.com/de-de/download/details.aspx?id=30445" target="_blank">Whitepaper</a> bietet IT Professionals Anleitung...
  • Access 2007: Datenbank exportieren (SQL, MySQL, OOo)

    Access 2007: Datenbank exportieren (SQL, MySQL, OOo): Hi, ich habe hier eine Access 2007-Datenbank und möchte das Backend, also die Datenbank selbst auf einen MySQL-Server verschieben. (Das Frontend...
  • GELÖST Vergleich SQL und Access

    GELÖST Vergleich SQL und Access: Hallo! Mich interessieren einfach mal ein paar Merkmale, mit denen man Access und SQL miteinander vergleichen kann. Einfach ein Vergleich, mit...
  • GELÖST Welche Tabellen liegen in Access-DB vor? SQL Befehl

    GELÖST Welche Tabellen liegen in Access-DB vor? SQL Befehl: Hi! Gibt es einen SQL Befehl, der überprüft, welche Tabellen in einer Access Datenbank vorliegen? Ich habe schon danach gegoogelt, aber bin leider...
  • Ähnliche Themen

    Oben