![]() |
Datenbank: MS Accsess • Zugriff über: ADO
Datenbankfeld in ein TEdit
Moin ihr DP'ler
Mein Problem ist folgendes ich hab hier einen Leasing Angebotsrechner in Delphi und der Soll aus einer Datenbank (Mailing) mit Mailingdaten 4 auslesen und die in 4 TEdit eintragen, aber nur wenn der Benutzer eine ID zum Mailing Adressat eingibt und einen entsprechenden Button betätigt. Meine Frage ist nun wie bekomme ich die 4 Felder (Name, Anrede, Straße, Ort) aus der Tabelle (Adressebliste Antworten) in die 4 Editfelder? PS: Nein ich kann den Tabellen Namen nicht auf einen ohne Leerzeichen ändern, der ist fest ins System eingebunden. |
Re: Datenbankfeld in ein TEdit
Wo genau hakt es denn? Wie Du die Daten bekommst oder wie Du die in den Edits anzeigen kannst?
|
Re: Datenbankfeld in ein TEdit
daran wie ich die Daten bekomme weil wie ichs in die Edits bekomm dürfte ja dann nur noch ein einfaches := lösen
|
Re: Datenbankfeld in ein TEdit
Hi,
benutzt du eine Query? Dann ungefähr so:
Delphi-Quellcode:
Viele Grüße ...
Query.SQL.Clear;
Query.SQL.Add('SELECT * FROM documents WHERE id= :id'); Query.ParamByName('id').AsInteger := inVal; Query.Open; if not documentsQuery.IsEmpty then begin Edit1.Text := Query.FieldByName('name').AsString; ... |
Re: Datenbankfeld in ein TEdit
Hallo,
bei einem
SQL-Code:
kannst Du um den Tabellennamen Hochkommata nutzen, leider weiß ich aus dem Ärmel heraus nicht, welche Access jetzt da gerade haben will. Eine der folgenden Varianten könnte aber funktionieren:
Select * from Tabelle
SQL-Code:
Select * from 'Adressebliste Antworten'
Select * from "Adressebliste Antworten" Select * from ´Adressebliste Antworten´ Select * from `Adressebliste Antworten` |
Re: Datenbankfeld in ein TEdit
es sind [] bei Access das hab ich schon herrausgefunden
bzw Matze wars :) |
Re: Datenbankfeld in ein TEdit
Ich würde mich da allerdings auf die wirklich benötigten Felder beschränken (macht zwar unter Access wohl nicht wirklich einen Unterschied, aber es ist immer besser, sich das gleich anzugewöhnen).
SQL-Code:
SELECT Name, Anrede, Straße, Ort
FROM Tabelle WHERE ID = :id |
Re: Datenbankfeld in ein TEdit
ich habs jetzt so
Delphi-Quellcode:
Wegen Ado Query und funktioniert, also vielen Dank nochmal
ADOQuery1.SQL.Clear;
ADOQuery1.Parameters.ParamByName('id').Value := edparam.Text; ADOQuery1.SQL.Add('SELECT Anrede FROM [Adressenliste Antworten] WHERE NR= :id'); ADOQuery1.Open; |
Re: Datenbankfeld in ein TEdit
Jetzt hab ich ein anderes Problem und zwar wenn ich das 2te mal auslesen will kommt folgender Fehler:
Delphi-Quellcode:
Hier mal der Code dazu
Erste Zufalls-Exception bei $7C812AEB. Exception-Klasse EDatabaseError mit Meldung 'ADOQuery1: Parameter 'id' nicht gefunden'. Prozess mtd_leasing.exe (1784)
Delphi-Quellcode:
procedure TForm3.bttauslesenClick(Sender: TObject);
var an, ges, vname, nname, str, plz, ort: String; begin bttauslesen.Caption := 'Bitte warten'; bttauslesen.Enabled := false; if ping('walhall') then begin ADOConnection1.Connected := true; ADOQuery1.SQL.Clear; ADOQuery1.Parameters.ParamByName('id').Value := edparam.Text; //Markierte Zeile ADOQuery1.SQL.Add('SELECT Anrede, Geschlecht, Vorname, Nachname, PLZ, Straße, Ort FROM [Adressenliste Antworten] WHERE NR= :id'); ADOQuery1.Open; if not ADOQuery1.IsEmpty then begin an := ADOQuery1.FieldByName('Anrede').AsString; ges := ADOQuery1.FieldByName('Geschlecht').AsString; vname := ADOQuery1.FieldByName('Vorname').AsString; nname := ADOQuery1.FieldByName('Nachname').AsString; plz := ADOQuery1.FieldByName('PLZ').AsString; str := ADOQuery1.FieldByName('Straße').AsString; ort := ADOQuery1.FieldByName('Ort').AsString; AdoQuery1.Close; AdoConnection1.Connected := false; Edpraxis.Text := an; if vname = '' then edname.Text := ges + ' ' + nname else edname.Text := vname + ' ' + nname; edstrasse.Text := str; edadresse.Text := plz + ' ' + ort; bttauslesen.Caption := 'Auslesen'; bttauslesen.Enabled := true; end else begin Application.MessageBox('ID nicht vorhanden', 'Fehler', MB_ok or MB_iconerror); bttauslesen.Caption := 'Auslesen'; bttauslesen.Enabled := true; end; end else if Application.MessageBox('Keine Verbindung zum Server möglich', 'Fehler', mb_iconerror or MB_RETRYCANCEL) = IDRETRY then bttauslesen.Click else begin bttauslesen.Caption := 'Auslesen'; bttauslesen.Enabled := true; end; end; |
Re: Datenbankfeld in ein TEdit
Reihenfolge falsch:
Delphi-Quellcode:
Btw. Die Abfrage brauchst du nur einmal setzen, beim 2. Mal reicht es den parameter neu zu belegen
ADOQuery1.SQL.Add('SELECT Anrede, Geschlecht, Vorname, Nachname, PLZ, Straße, Ort FROM [Adressenliste Antworten] WHERE NR= :id');
ADOQuery1.Parameters.ParamByName('id').Value := edparam.Text; //Markierte Zeile |
Re: Datenbankfeld in ein TEdit
ok vielen dank, läuft wieder wie ne eins. :dp:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz