Q&A

  • 수정이 안됩니다.


사용환경 : Win98

Tool : 델파이3

db : Microsoft Access



Table1.Open;

Table1.SetKey;

Table1.FieldByName('sabun').Asstring := Edit1.Text;



if Table1.GotoKey = True Then

Begin

Table1.Edit;

Table1['PPLNO1'] := Edit4.Text;

:

:

:

Table1.Post;

End;



Edit1.Text 의 값의 사번을 찾아서...Table1.Edit 에 들어갑니다.

그런다음 Table1.Post 문장에 가면...

Key Violation

[MicroSoft][ODBC MicroSoft Access 97 드라이버] Query is too complex



이런 메세지가 나옵니다.

해결좀 해주세요!~





















5  COMMENTS
  • Profile
    나여 2000.09.06 23:23
    effenys wrote:

    >

    > 사용환경 : Win98

    > Tool : 델파이3

    > db : Microsoft Access

    >

    > Table1.Open;

    > Table1.SetKey;

    > Table1.FieldByName('sabun').Asstring := Edit1.Text;

    >

    > if Table1.GotoKey = True Then

    > Begin

    > Table1.Edit;

    > Table1['PPLNO1'] := Edit4.Text;

    > :

    > :

    > :

    > Table1.Post;

    > End;

    >

    > Edit1.Text 의 값의 사번을 찾아서...Table1.Edit 에 들어갑니다.

    > 그런다음 Table1.Post 문장에 가면...

    > Key Violation

    > [MicroSoft][ODBC MicroSoft Access 97 드라이버] Query is too complex

    >

    > 이런 메세지가 나옵니다.

    > 해결좀 해주세요!~





    답변>

    이런경우에는 쉽게 할려면 한조건에 table을 두개 쓰는건데 하나는 입력되어지는 값

    다른 하나는 이미입력되어져 있는값이죠.그러니까 수정할려면 두번째 table을 사용하면

    돼죠.. 그리니까 첫번째는 데이타가 입력되어지는 진행사항이니까 key violation이 걸리는거죠. ***해결책 table2.edit;**

    >

    >

    >

    >

    >

    >

    >

    >

    >

    >

  • Profile
    나여 2000.09.06 23:22
    effenys wrote:

    >

    > 사용환경 : Win98

    > Tool : 델파이3

    > db : Microsoft Access

    >

    > Table1.Open;

    > Table1.SetKey;

    > Table1.FieldByName('sabun').Asstring := Edit1.Text;

    >

    > if Table1.GotoKey = True Then

    > Begin

    > Table1.Edit;

    > Table1['PPLNO1'] := Edit4.Text;

    > :

    > :

    > :

    > Table1.Post;

    > End;

    >

    > Edit1.Text 의 값의 사번을 찾아서...Table1.Edit 에 들어갑니다.

    > 그런다음 Table1.Post 문장에 가면...

    > Key Violation

    > [MicroSoft][ODBC MicroSoft Access 97 드라이버] Query is too complex

    >

    > 이런 메세지가 나옵니다.

    > 해결좀 해주세요!~





    답변>

    이런경우에는 쉽게 할려면 한조건에 table을 두개 쓰는건데 하나는 입력되어지는 값

    다른 하나는 이미입력되어져 있는값이죠.그러니까 수정할려면 두번째 table을 사용하면

    돼죠.. 그리니까 첫번째는 데이타가 입력되어지는 진행사항이니까 key violation이 걸리는거죠. ***해결책 table2.edit;**

    >

    >

    >

    >

    >

    >

    >

    >

    >

    >

  • Profile
    effenys 2000.09.07 01:28


    그래도 똑같은 에러가...

    어떡하죠!~?

    부탁드립니다...





    나여 wrote:

    > effenys wrote:

    > >

    > > 사용환경 : Win98

    > > Tool : 델파이3

    > > db : Microsoft Access

    > >

    > > Table1.Open;

    > > Table1.SetKey;

    > > Table1.FieldByName('sabun').Asstring := Edit1.Text;

    > >

    > > if Table1.GotoKey = True Then

    > > Begin

    > > Table1.Edit;

    > > Table1['PPLNO1'] := Edit4.Text;

    > > :

    > > :

    > > :

    > > Table1.Post;

    > > End;

    > >

    > > Edit1.Text 의 값의 사번을 찾아서...Table1.Edit 에 들어갑니다.

    > > 그런다음 Table1.Post 문장에 가면...

    > > Key Violation

    > > [MicroSoft][ODBC MicroSoft Access 97 드라이버] Query is too complex

    > >

    > > 이런 메세지가 나옵니다.

    > > 해결좀 해주세요!~

    >

    >

    > 답변>

    > 이런경우에는 쉽게 할려면 한조건에 table을 두개 쓰는건데 하나는 입력되어지는 값

    > 다른 하나는 이미입력되어져 있는값이죠.그러니까 수정할려면 두번째 table을 사용하면

    > 돼죠.. 그리니까 첫번째는 데이타가 입력되어지는 진행사항이니까 key violation이 걸리는거죠.



    ***해결책 table2.edit;**

  • Profile
    나여 2000.09.06 23:21
    effenys wrote:

    >

    > 사용환경 : Win98

    > Tool : 델파이3

    > db : Microsoft Access

    >

    > Table1.Open;

    > Table1.SetKey;

    > Table1.FieldByName('sabun').Asstring := Edit1.Text;

    >

    > if Table1.GotoKey = True Then

    > Begin

    > Table1.Edit;

    > Table1['PPLNO1'] := Edit4.Text;

    > :

    > :

    > :

    > Table1.Post;

    > End;

    >

    > Edit1.Text 의 값의 사번을 찾아서...Table1.Edit 에 들어갑니다.

    > 그런다음 Table1.Post 문장에 가면...

    > Key Violation

    > [MicroSoft][ODBC MicroSoft Access 97 드라이버] Query is too complex

    >

    > 이런 메세지가 나옵니다.

    > 해결좀 해주세요!~





    답변>

    이런경우에는 쉽게 할려면 한조건에 table을 두개 쓰는건데 하나는 입력되어지는 값

    다른 하나는 이미입력되어져 있는값이죠.그러니까 수정할려면 두번째 table을 사용하면

    돼죠.. 그리니까 첫번째는 데이타가 입력되어지는 진행사항이니까 key violation이 걸리는거죠. ***해결책 table2.edit;**

    >

    >

    >

    >

    >

    >

    >

    >

    >

    >

  • Profile
    김영해 2000.09.05 02:44
    effenys wrote:

    >

    > 사용환경 : Win98

    > Tool : 델파이3

    > db : Microsoft Access

    >

    > Table1.Open;

    > Table1.SetKey;

    > Table1.FieldByName('sabun').Asstring := Edit1.Text;

    >

    > if Table1.GotoKey = True Then

    > Begin

    > Table1.Edit;

    > Table1['PPLNO1'] := Edit4.Text;

    > :

    > :

    > :

    > Table1.Post;

    > End;

    >

    > Edit1.Text 의 값의 사번을 찾아서...Table1.Edit 에 들어갑니다.

    > 그런다음 Table1.Post 문장에 가면...

    > Key Violation

    > [MicroSoft][ODBC MicroSoft Access 97 드라이버] Query is too complex

    >

    > 이런 메세지가 나옵니다.

    > 해결좀 해주세요!~



    일단 문법상으론 이상이 없는것 같구요....

    혹시 다중키아닌가요(키값이2이상)?

    그래두 안된다면 open;이전에 addindex();로 키를 다시생성해보시죠??