Results 1 to 8 of 8

Thread: hij maakt wel aan maar vult de records niet.

  1. #1

    hij maakt wel aan maar vult de records niet.

    Geachte mensen,

    dit is de code wie ik gebruik om 2 tabellen te vullen genaamd vereniging (adotable2) en de tabel bestuur (adotable5). Alle 2 tabellen hebben het onderdeel verenigingsnummer. bij de tabel bestuur haal ik deze uit de tabel vereniging. ALs ik dus een nieuwe vereniging invoer moet hij ook het het nieuwe verenigingsnummer ophalen in de tabel bestuur. Volgens mij moet het lukke met de onderstaande code maar delphi weigert mee te werken. ik krijg de foutmelding: 'acces violation at address 1b03f511 in module msjet40.dll' Ik heb de relaties al weggehaald maar zonder succes. Weet iemand misschien waar dit aan ligt?

    Code:
    var
      veren_toevoeg: Tveren_toevoeg;
      naam,adres,postcode,plaats,telefoonnummer,regio,
            voorzitter,penningmeester:string;
    
    implementation
    
    uses datamodule;
    
    {$R *.DFM}
    
    procedure Tveren_toevoeg.BitBtn1Click(Sender: TObject);
    var
    toevoegen:boolean;
    begin
    toevoegen:=false;
    if trim(naam)='' then
             Showmessage('u heeft geen naam ingevuld')else
     if trim(adres)='' then
             Showmessage('u heeft geen adres ingevuld')else
      if trim(postcode)='' then
             Showmessage('u heeft geen postcode ingevuld')else
       if trim(plaats)='' then
             Showmessage('u heeft geen plaats ingevuld')else
        if trim(telefoonnummer)='' then
             Showmessage('u heeft geen telefoonnummer ingevuld')else
         if trim(regio)='' then
             Showmessage('u heeft geen regio ingevuld')else
          if trim(voorzitter)='' then
             Showmessage('u heeft geen voorzitter ingevuld')else
           if trim(penningmeester)='' then
             Showmessage('u heeft geen penningmeester ingevuld')else
             toevoegen:=true;
    
    if toevoegen then begin
      datamodule3.AdoQuery1.Close; 
      datamodule3.AdoQuery1.SQL.Clear;
      datamodule3.AdoQuery1.SQL.Add('SELECT MAX(nummer) as MaxVereniging'); 
      datamodule3.AdoQuery1.Open;
       datamodule3.ADOTable5.FieldByName('nummer').AsInteger := 
         datamodule3.AdoQuery1.FieldByName('MaxVereniging').AsInteger + 1;
      DataModule3.ADOTable2.Post;
      DataModule3.ADOTable2.Requery;
      DataModule3.ADOTable2.Last;
      DataModule3.ADOTable2.append;
      DataModule3.ADOTable5.Post;
      DataModule3.ADOTable5.Requery;
      DataModule3.ADOTable5.Last;
      DataModule3.ADOTable5.append;
    end;
    
    end;
    
    procedure Tveren_toevoeg.Button1Click(Sender: TObject);
    begin
    veren_toevoeg.hide;
    end;
    
    procedure Tveren_toevoeg.FormCreate(Sender: TObject);
    begin
    Datamodule3.ADOTable2.Append;
    Datamodule3.ADOTable5.Append;
    end;
    
    procedure Tveren_toevoeg.DBComboBox1Change(Sender: TObject);
    begin
    regio:=DBComboBox1.text;
    end;
    
    procedure Tveren_toevoeg.DBEdit1Change(Sender: TObject);
    begin
    naam:=DBEdit1.Text;
    end;
    
    procedure Tveren_toevoeg.DBEdit2Change(Sender: TObject);
    begin
    adres:=DBEdit2.text;
    end;
    
    procedure Tveren_toevoeg.DBEdit3Change(Sender: TObject);
    begin
    Postcode:=DBEdit3.text;
    end;
    
    procedure Tveren_toevoeg.DBEdit4Change(Sender: TObject);
    begin
    plaats:=DBEdit4.text;
    end;
    
    procedure Tveren_toevoeg.DBEdit5Change(Sender: TObject);
    begin
    telefoonnummer:=DBEdit5.text;
    end;
    
    procedure Tveren_toevoeg.DBEdit6Change(Sender: TObject);
    begin
    voorzitter:=DBEdit6.text;
    end;
    
    procedure Tveren_toevoeg.DBEdit7Change(Sender: TObject);
    begin
    penningmeester:=DBEdit7.text;
    end;
    
    end.
    alvast bedankt

    a newbie in delphi

  2. #2
    eej,

    was ik weer

    heb ffies je source enzo bekenen heb zowieso wat tips

    op je datamodule zou ik een AdoConnection zetten.. hierin maak je de connectionstring naar je AccessDatabase.. vervolgens hoef je op al je tabellen en queries alleen maar de connection aan te geven. ipv. die hele connection string;

    datamodule3.AdoQuery1.SQL.Add('SELECT MAX(nummer) as MaxVereniging');
    datamodule3.AdoQuery1.Open;
    datamodule3.ADOTable5.FieldByName('nummer').AsInte ger :=
    datamodule3.AdoQuery1.FieldByName('MaxVereniging') .AsInteger + 1;
    ik zag ook op de datamodule dat je al een AdoQuery1 had.. dus als je het nog niet gedaan heb zet er even een nieuw ado query bij .

    en zet in de SQL string van je ADOQuery de volgende String:

    SELECT MAX(nummer) as MaxVereniging
    FROM vereniging

    Nu hoef je hem alleen in je source nog te openen en kun je gelijk de waarde ophalen.

    dan is die ellendige AccessViolation ook gelijk weg.. merkte ik..

    zal nu nog ff kijken waarom hij alleen regio invulde in je database..

  3. #3
    eej,

    en daar was ik weer... ben eruit waarom hij niets in je database wegschrijft.

    en nu werkt dat wel

    op je toevoegen scherm staan wat velden die je wilt toevoegen in je Vereniging tabel en in je bestuur tabel.. hier wil je netjes de daarvoorbestemde tabellen gebruiken. maar als je wilt dat je dbedit waarden ook daadwerkelijk in die tabel terecht komen moet je ze goed koppelen aan de daarvoor bestemde datasource dit is wat ik heb gedaan:

    de editboxen van:
    naam, adres, postcode, plaats, telefoonnummer en regio heb ik gekoppeld aan
    DATASOURCE4

    voorzitter en penningmeester aan DATASOURCE7

    deze stonden alle aan DATASOURCE6 gekoppeld die naar ADOQuery2 ging,, waarmee je die info ophaalde van eenbepaald lidnr.

    nouja als je het niet begrijpt horen we het hier wel weer.

  4. #4
    ben jij de enigste op dit forum????

    ik zal ff gaan puzzele en zoals gewoonlijk hoor je wel of het gelukt is of niet.

  5. #5
    Zondag middag.. iedereen doet nuttige dingen

  6. #6
    voor zover ik het nu zie werkt het.

    mijn dank is groot.

  7. #7
    Mooi dat het erop lijkt dat het werkt

    als er nog wat is horen we het wel

  8. #8
    Bite me! Tommy's Avatar
    Join Date
    Jan 2002
    Location
    Rdam
    Posts
    564
    Let ook in ***snaam op de coding standards of de namegiving, dit scheelt een hoop gezoek voor je zelf. Nu heb je het gepruts met datasource3234 maar maak je hier van dsLedenTabel dan werkt dat veeeeel prettiger. Weet je ook later nog waar het over gaat, is ook beter voor de onderhoudbaarheid van je programmatje.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 5
    Last Post: 12-Oct-04, 23:39
  2. Replies: 13
    Last Post: 31-May-04, 13:01
  3. Query wil niet werken onder ODBC maar wel onder JDBC
    By RobLemmens in forum Databases
    Replies: 8
    Last Post: 29-Feb-04, 16:11
  4. NLDelphi op BorCon 2003
    By Richard in forum De website
    Replies: 12
    Last Post: 13-Nov-03, 10:28

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •