1

Konu: FORMDA "connat access the selected table" hatası alıyorum

Uzun uğraşlar sonucu birkaç form oluşturdum. -))
Son oluşturduğım formda 3 dosya kullanılıyor. (.DBF)
1. Dosya bu formda kullanılan genel dosya(gemi.DBF). 2. dosya combobox(acente1) de kullanılan dosya(acente.DBF). 3. dosya combobox(bayrak1) de kullanılan dosya(bayrak.DBF).

Program combobox larla işlem yapmadığım sürece sorunsuz çalışıyor. Ama combobox ları program içinde kullandığım zaman (Sakla ve Düzelt butonlarında combobox larla işlem yaparsam) KAPAT butonuna bastığım zaman "connat access the selected table" hatası alıyorum. Kapat butonunda sadece
        CLOSE ALL   
        thisform.Release
var.

2. bir sorunum. DÜZELT(EDIT) BUTONUN bastığım zaman acente ve bayrak butonunda GEMI.DBF dosyasında karşılıkları olan ano(Acente no) ve bayno (bayrak no) değerlerini nasıl combobax ta seçili değer haline getirip combobox da bu degerlerin karşılıklarını göstertebilirim. ?

Nerelerde ne düzeltme yapmam gerekir ?

Kod ektedir.

Teşekkürler


Clear All
SET TALK OFF
SET NOTIFY OFF
ON ERROR DO HATA

Public oForm
oForm = Createobject("gemi")
oForm.Show(1)

Define Class gemi As Form
  DataSession = 2
  Top    = 2
  Left   = 50
  Height = 595 
  Width  = 750
  Name   = "gemi"
  Caption = "Gemi Kodu"
  Icon = "BLUE.ico"
   

  orecord = .Null.

  Add Object lblno As Label With ;
    left = 5, Top = 5,  Caption = "Geliş Kodu                              :", AutoSize=.T.
*Width = 45,
  Add Object lbladi As Label With ;
    left = 5, Top = 30, Caption = "Gemi Adı                                 :", AutoSize=.T.
    *AutoSize=.T.,

  Add Object lblaadi As Label With ;
    left = 5, Top = 55, Caption = "Acente                                     :", AutoSize=.T.

  Add Object lblbayadi As Label With ;
    left = 5, Top = 80, Caption = "Bayrağı                                    :", AutoSize=.T.

  Add Object lblgelis As Label With ;
    left = 5, Top = 105, Caption = "Geliş Sefer      No-Tarih :                                                                             -", AutoSize=.T.

  Add Object lblgidis As Label With ;
    left = 5, Top = 130, Caption = "Gidiş Sefer Kodu-No-Tarih :                                   -                                   -", AutoSize=.T.

  Add Object lblgelobeyan As Label With ;
    left = 5, Top = 155, Caption = "Geliş Özet Beyan No-Tarih :                         -", AutoSize=.T.

  Add Object lblgidobeyan As Label With ;
    left = 5, Top = 180, Caption = "Gidiş Özet Beyan No-Tarih :                         -", AutoSize=.T.

  Add Object lblnetgross As Label With ;
    left = 5, Top = 205, Caption = "Net-Gross Weigth                :                         -", AutoSize=.T.

  Add Object lblyukgidliman As Label With ;
    left = 5, Top = 230, Caption = "Yükleme-Gidiş Limanı        :                                    -", AutoSize=.T.



  Add Object txtNo As myTextBox With ;
      Top = 2, ;
      left = 165, ;
      Width = 90, ;
      InputMask = "XXXXXXXXXX", ;
      Enabled = .F.
      *SelectOnEntry = .T., ControlSource = "bayrak.no"

  Add Object txtAdi As myTextBox With ;
      Top = 27, ;
      left = 165, ;
      Width = 170, ;
      InputMask = "XXXXXXXXXXXXXXXXXXXX", ;
      Enabled = .F.
    *,ControlSource = "bayrak.adi"

  Add Object txtAadi As myTextBox With ;
      Top = 52, ;
      left = 165, ;
      Width = 210, ;
      InputMask = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", ;
      Enabled = .F.

  Add Object txtBayadi As myTextBox With ;
      Top = 77, ;
      left = 165, ;
      Width = 170, ;
      InputMask = "XXXXXXXXXXXXXXXXXXXX", ;
      Enabled = .F.

*  Add Object txtSno As myTextBox With ;
*      Top = 102, ;
*      left = 165, ;
*      Width = 90, ;
*      InputMask = "XXXXXXXXXX", ;
*      Enabled = .F.

  Add Object txtSno As myTextBox With ;
      Top = 102, ;
      left = 272, ;
      Width = 90, ;
      InputMask = "XXXXXXXXXX", ;
      Enabled = .F.

  Add Object txtGtar As myTextBox With ;
      Top = 102, ;
      left = 379, ;
      Width = 75, ;
      InputMask = "99/99/9999", ;
      Enabled = .F.

  Add Object txtggkod As myTextBox With ;
      Top = 127, ;
      left = 165, ;
      Width = 90, ;
      InputMask = "XXXXXXXXXX", ;
      Enabled = .F.

  Add Object txtSno2 As myTextBox With ;
      Top = 127, ;
      left = 272, ;
      Width = 90, ;
      InputMask = "XXXXXXXXXX", ;
      Enabled = .F.

  Add Object txtDtar As myTextBox With ;
      Top = 127, ;
      left = 379, ;
      Width = 75, ;
      InputMask = "99/99/9999", ;
      Enabled = .F.

  Add Object txtMnfno As myTextBox With ;
      Top = 152, ;
      left = 165, ;
      Width = 60, ;
      InputMask = "99999", ;
      Enabled = .F.

  Add Object txtMnftar As myTextBox With ;
      Top = 152, ;
      left = 242, ;
      Width = 75, ;
      InputMask = "99/99/9999", ;
      Enabled = .F.     

  Add Object txtMnfno2 As myTextBox With ;
      Top = 177, ;
      left = 165, ;
      Width = 60, ;
      InputMask = "99999", ;
      Enabled = .F.

  Add Object txtMnftar2 As myTextBox With ;
      Top = 177, ;
      left = 242, ;
      Width = 75, ;
      InputMask = "99/99/9999", ;
      Enabled = .F.     

  Add Object txtNw As myTextBox With ;
      Top = 202, ;
      left = 165, ;
      Width = 60, ;
      InputMask = "999999", ;
      Enabled = .F.

  Add Object txtGw As myTextBox With ;
      Top = 202, ;
      left = 242, ;
      Width = 60, ;
      InputMask = "999999", ;
      Enabled = .F.     

  Add Object txtYuklim As myTextBox With ;
      Top = 227, ;
      left = 165, ;
      Width = 90, ;
      InputMask = "XXXXXXXXXXXXXXX", ;
      Enabled = .F.

  Add Object txtGidlim As myTextBox With ;
      Top = 227, ;
      left = 272, ;
      Width = 90, ;
      InputMask = "XXXXXXXXXXXXXXX", ;
      Enabled = .F.     
     
           
*        BoundColumn = 1, ;
*        ColumnCount = 3, ;
*        ColumnWidths = "75,75,75", ;
*        Value = "", ;
*        Height = 24, ;
*        Left = 205, ;
*        Style = 2, ;
*        Top = 64, ;
*        Width = 300, ;
*        rowsource="acente.adi,no",;
*        Name = "acente1"

  ADD OBJECT acente1 AS combobox WITH ;
      Top = 52, ;
      left = 385, ;
      Width = 150, ;   
      rowsourcetype=2,;
      rowsource="acente.adi,no",;
      boundcolumn=3,;
      columncount=3,;
      columnwidths="250,60,0",;
      Enabled = .F.

  ADD OBJECT bayrak1 AS combobox WITH ;
      Top = 77, ;
      left = 385, ;
      Width = 150, ;   
      rowsourcetype=2,;
      rowsource="bayrak.adi,no",;
      boundcolumn=3,;
      columncount=3,;
      columnwidths="250,60,0",;
      Enabled = .F.       
       
             
   Add Object cmdNew as CommandButton With ;
        Top = 2, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        Caption = 'Yeni Kayıt', ;
        Enabled = .t.

    Add Object cmdSave as CommandButton With ;
        Top = 2, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        Caption = 'Sakla', ;
        Visible = .f.

    Add Object cmdSave2 as CommandButton With ;
        Top = 2, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        Caption = 'Sakla', ;
        Visible = .f.
       
    Add Object cmdEdit as CommandButton With ;
        Top = 32, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        Caption = 'Düzelt', ;
        Enabled = .t.

    Add Object cmdCancel as CommandButton With ;
        Top = 32, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        Caption = 'Vazgeç', ;
        Visible = .f.

    Add Object cmdUpdate as CommandButton With ;
        Top = 32, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        Caption = 'Sakla', ;
        Visible = .f.

    Add Object cmdDelete as CommandButton With ;
        Top = 62, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        Caption = 'Sil', ;
        Enabled = .t.

    Add Object cmdClose as CommandButton With ;
        Top = 92, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        Caption = 'Kapat'


    Add Object cmdkodu as CommandButton With ;
        Top = 152, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        Caption = 'Sıra-Sırala'

    Add Object cmdadi as CommandButton With ;
        Top = 182, ;
        Left = 650, ;
        Height = 27, ;
        Width = 84, ;
        rowsource="acente.no,adi",;
        Caption = 'Adı-Sırala'


    Add Object grdListe as myGrid


    Procedure cmdNew.Click
        ppNew()
    EndProc

    Procedure cmdSave.Click
        ppSave()
    EndProc

    Procedure cmdSave2.Click
        ppSave2()
    EndProc

    Procedure cmdCancel.Click
        ppCancel()
    EndProc     

    Procedure cmdEdit.Click
        ppEdit()
    EndProc

    Procedure cmdDelete.Click
        ppDelete()
    EndProc   
   
    Procedure cmdClose.Click
        CLOSE ALL   
        thisform.Release
    EndProc

    Procedure cmdkodu.Click
        ppkodu()
    EndProc   

    Procedure cmdadi.Click
        ppadi()
    EndProc   

     
*  Add Object grdOrders As Grid With ;
*    Left = 10, Top = 90, Height = 400, Width = 780, ;
*    RecordSource = "Orders", ;
*    LinkMaster = "Customer", ;
*    ChildOrder = "cust_id",;
*    RelationalExpr = "cust_id"

  Procedure Load
     SET DELE ON
     SELE 1
     USE gemi INDEX gemi1,gemi2
     SELE 2
     USE acente INDEX acente2,acente1
     SELE 3
     USE bayrak INDEX bayrak2,bayrak1

     sele 1
     
*    Use bayrak INDEX bayrak1,bayrak2
*    In 0
*    Use (_samples+"data\orders") In 0

*    cursorsetprop("buffering",5,"customer")
*    cursorsetprop("buffering",5,"orders")
  Endproc

* Procedure acente1.Load
*    USE acente INDEX acente1,acente2
*    BROWSE
* Endproc


    PROCEDURE acente1.Init
        lcCustomerID = "CENTC"
        this.Value = m.lcCustomerID
    ENDPROC

    PROCEDURE bayrak1.Init
        lcCustomerID = "CENTC"
        this.Value = m.lcCustomerID
    ENDPROC
   
Enddefine
******************************************************************
Define Class myTextBox as TextBox
******************************************************************
    Enabled = .f.
    DisabledForeColor = Rgb(0,0,0)
    SelectOnEntry = .t.
EndDefine

******************************************************************
Procedure ppNew
******************************************************************
    With oForm
*        APPEND BLANK
        .txtNo.Enabled         = .t.
        .txtNo.Value         = SPACE(10)
        .txtAdi.Enabled     = .t.
        .txtAdi.Value         = SPACE(20)
        .txtAadi.Enabled     = .f.
        .txtAadi.Value         = SPACE(30)

        .txtBayadi.Enabled     = .f.
        .txtBayadi.Value     = SPACE(20)       
        .txtSno.Enabled     = .t.
        .txtSno.Value         = SPACE(10)       
        .txtGtar.Enabled     = .t.
        .txtGtar.Value         = CTOD("  /  /    ")       
        .txtGgkod.Enabled     = .t.
        .txtGgkod.Value     = SPACE(10)       
        .txtSno2.Enabled     = .t.
        .txtSno2.Value         = SPACE(10)       
        .txtDtar.Enabled     = .t.
        .txtDtar.Value         = CTOD("  /  /    ")         
        .txtMnfno.Enabled     = .t.
        .txtMnfno.Value        = 0       
        .txtMnftar.Enabled     = .t.
        .txtMnftar.Value    = CTOD("  /  /    ")         
        .txtMnfno2.Enabled     = .t.
        .txtMnfno2.Value    = 0       
        .txtMnftar2.Enabled = .t.
        .txtMnftar2.Value    = CTOD("  /  /    ")         
        .txtNw.Enabled         = .t.
        .txtNw.Value        = 0       
        .txtGw.Enabled         = .t.
        .txtGw.Value        = 0       
        .txtYuklim.Enabled     = .t.
        .txtYuklim.Value    = SPACE(15)       
        .txtGidlim.Enabled     = .t.
        .txtGidlim.Value    = SPACE(15)       

        .acente1.Enabled     = .t.
        .bayrak1.Enabled     = .t.
*        .txtili.Enabled     = .t.
*        .txtili.Value         = SPACE(40)

        .cmdNew.Visible = .f.
        .cmdSave.Visible = .t.
        .cmdCancel.Visible = .t.       
        .cmdEdit.Visible = .f.
        .cmdDelete.Visible = .f.
        .cmdClose.Visible = .f.                       
        .cmdkodu.Visible = .f.
        .cmdadi.Visible = .f.
*        .grdListe.Enabled = .f.
        .txtNo.SetFocus()
    EndWith
EndProc

******************************************************************
Procedure ppSave
******************************************************************
    With oForm
     sakla1=RECNO()
        If .txtNo.Value <> SPACE(10)
         SET ORDER TO 1
         SEEK .txtNo.Value
*         ? .txtNo.Value
*         BROWSE
*         WAIT
          IF FOUND()
*             ? "11"
*             WAIT
*             GO sakla1
  *           DELE
           MessageBox('Aynı Numaralı'+Chr(13)+'Kayıt Mevcut')

          ELSE
*             ? "22"
*             WAIT
            SELE 2
            sakla1=no
            sakla2=adi
            SELE 3
            sakla3=no
            sakla4=adi
            SELE 1
       
           APPEND BLANK
           REPLA no          WITH .txtNo.Value 
           REPLA adi         WITH .txtAdi.Value 

*           REPLA aadi         WITH .txtAadi.Value 
           REPLA ano         WITH sakla1
           REPLA aadi         WITH sakla2

*           REPLA bayadi     WITH .txtBayadi.Value 
           REPLA bayno         WITH sakla3
           REPLA bayadi        WITH sakla4

           REPLA sno         WITH .txtSno.Value 
           REPLA gtar         WITH .txtGtar.Value 
           REPLA ggkod         WITH .txtGgkod.Value 
           REPLA sno2         WITH .txtSno2.Value 
           REPLA dtar         WITH .txtDtar.Value 
           REPLA mnfno         WITH .txtMnfno.Value 
           REPLA mnftar         WITH .txtMnftar.Value 
           REPLA mnfno2         WITH .txtMnfno2.Value 
           REPLA mnftar2     WITH .txtMnftar2.Value 
           REPLA nw             WITH .txtNw.Value 
           REPLA gw             WITH .txtGw.Value 
           REPLA yuklim         WITH .txtYuklim.Value 
           REPLA gidlim         WITH .txtGidlim.Value 

*           Thisform.Refresh()
*           MessageBox('Kayıt işlemi'+Chr(13)+'başarıyla tamamlandı')
          ENDIF
        EndIf

        .txtNo.Enabled = .f.
        .txtAdi.Enabled = .f.
        .txtAadi.Enabled = .f.
        .txtBayadi.Enabled = .f.
        .txtSno.Enabled = .f.
        .txtGtar.Enabled = .f.
        .txtGgkod.Enabled = .f.
        .txtSno2.Enabled = .f.
        .txtDtar.Enabled = .f.
        .txtMnfno.Enabled = .f.
        .txtMnftar.Enabled = .f.
        .txtMnfno2.Enabled = .f.
        .txtMnftar2.Enabled = .f.
        .txtMnfno.Enabled = .f.
        .txtNw.Enabled = .f.
        .txtGw.Enabled = .f.
        .txtYuklim.Enabled = .f.
        .txtGidlim.Enabled = .f.

        .acente1.Enabled     = .f.
        .bayrak1.Enabled     = .f.
               
        .cmdNew.Visible = .t.
        .cmdSave.Visible = .f.
        .cmdCancel.Visible = .f.       
        .cmdEdit.Visible = .t.
        .cmdDelete.Visible = .t.
        .cmdClose.Visible = .t.                       
        .cmdkodu.Visible = .t.
        .cmdadi.Visible = .t.


        .grdListe.Refresh()
        .grdListe.SetFocus()
       
*        .cmdListe.Click()
*        .grdListe.Enabled = .t.
*        .grdListe.SetFocus()


    EndWith
EndProc

******************************************************************
Procedure ppSave2
******************************************************************
    With oForm

*         REPLA no  WITH .txtNo.Value 

            SELE 2
            sakla1=no
            sakla2=adi
            SELE 3
            sakla3=no
            sakla4=adi
            SELE 1

         REPLA adi WITH .txtAdi.Value 

*           REPLA aadi         WITH .txtAadi.Value 
           REPLA ano         WITH sakla1
           REPLA aadi         WITH sakla2

*           REPLA bayadi     WITH .txtBayadi.Value 
           REPLA bayno         WITH sakla3
           REPLA bayadi        WITH sakla4
           
           REPLA sno         WITH .txtSno.Value 
           REPLA gtar         WITH .txtGtar.Value 
           REPLA ggkod         WITH .txtGgkod.Value 
           REPLA sno2         WITH .txtSno2.Value 
           REPLA dtar         WITH .txtDtar.Value 
           REPLA mnfno         WITH .txtMnfno.Value 
           REPLA mnftar         WITH .txtMnftar.Value 
           REPLA mnfno2         WITH .txtMnfno2.Value 
           REPLA mnftar2     WITH .txtMnftar2.Value 
           REPLA nw             WITH .txtNw.Value 
           REPLA gw             WITH .txtGw.Value 
           REPLA yuklim         WITH .txtYuklim.Value 
           REPLA gidlim         WITH .txtGidlim.Value 

         .txtNo.Enabled = .f.
         .txtAdi.Enabled = .f.
        .txtAadi.Enabled = .f.
        .txtBayadi.Enabled = .f.
        .txtSno.Enabled = .f.
        .txtGtar.Enabled = .f.
        .txtGgkod.Enabled = .f.
        .txtSno2.Enabled = .f.
        .txtDtar.Enabled = .f.
        .txtMnfno.Enabled = .f.
        .txtMnftar.Enabled = .f.
        .txtMnfno2.Enabled = .f.
        .txtMnftar2.Enabled = .f.
        .txtMnfno.Enabled = .f.
        .txtNw.Enabled = .f.
        .txtGw.Enabled = .f.
        .txtYuklim.Enabled = .f.
        .txtGidlim.Enabled = .f.

        .acente1.Enabled     = .f.
        .bayrak1.Enabled     = .f.

         .cmdNew.Visible = .t.
         .cmdSave2.Visible = .f.
         .cmdCancel.Visible = .f.       
         .cmdEdit.Visible = .t.
         .cmdDelete.Visible = .t.
         .cmdClose.Visible = .t.                       
         .cmdkodu.Visible = .t.
         .cmdadi.Visible = .t.

        .grdListe.Refresh()
        .grdListe.SetFocus()
       
         .grdListe.Refresh()
         .grdListe.SetFocus()
       
*        .cmdListe.Click()
*        .grdListe.Enabled = .t.
*        .grdListe.SetFocus()


    EndWith
EndProc

******************************************************************
Procedure ppCancel
******************************************************************
    With oForm

        .txtNo.Enabled = .f.
        .txtAdi.Enabled = .f.
        .txtAadi.Enabled = .f.
        .txtBayadi.Enabled = .f.
        .txtSno.Enabled = .f.
        .txtGtar.Enabled = .f.
        .txtGgkod.Enabled = .f.
        .txtSno2.Enabled = .f.
        .txtDtar.Enabled = .f.
        .txtMnfno.Enabled = .f.
        .txtMnftar.Enabled = .f.
        .txtMnfno2.Enabled = .f.
        .txtMnftar2.Enabled = .f.
        .txtMnfno.Enabled = .f.
        .txtNw.Enabled = .f.
        .txtGw.Enabled = .f.
        .txtYuklim.Enabled = .f.
        .txtGidlim.Enabled = .f.

        .acente1.Enabled     = .f.
        .bayrak1.Enabled     = .f.

        .cmdNew.Visible = .t.
        .cmdSave.Visible = .f.
        .cmdSave2.Visible = .f.
        .cmdCancel.Visible = .f.       
        .cmdEdit.Visible = .t.
        .cmdDelete.Visible = .t.
        .cmdClose.Visible = .t.                       
        .cmdkodu.Visible = .t.
        .cmdadi.Visible = .t.

        .grdListe.Refresh()
        .grdListe.SetFocus()
       
*        .cmdListe.Click()
*        .grdListe.Enabled = .t.
*        .grdListe.SetFocus()


    EndWith
EndProc

******************************************************************
Procedure ppEdit
******************************************************************
    With oForm
*        APPEND BLANK

            SELE 1
            sakla5=ano
            sakla6=bayno
            SELE 2
            SET ORDER TO 2
            SEEK sakla5
            SET ORDER TO 1
            SELE 3
            SELE 2
            SET ORDER TO 2
            SEEK sakla6
            SET ORDER TO 1
            SELE 1

        .txtNo.Enabled = .f.
        .txtNo.Value = no
        .txtAdi.Enabled = .t.
        .txtAdi.Value = adi
        .txtAadi.Enabled = .f.
        .txtAadi.Value = aadi

        .txtBayadi.Enabled     = .f.
        .txtBayadi.Value     = bayadi       
        .txtSno.Enabled     = .t.
        .txtSno.Value         = sno       
        .txtGtar.Enabled     = .t.
        .txtGtar.Value         = gtar       
        .txtGgkod.Enabled     = .t.
        .txtGgkod.Value     = ggkod       
        .txtSno2.Enabled     = .t.
        .txtSno2.Value         = sno2       
        .txtDtar.Enabled     = .t.
        .txtDtar.Value         = dtar       
        .txtMnfno.Enabled     = .t.
        .txtMnfno.Value        = mnfno       
        .txtMnftar.Enabled     = .t.
        .txtMnftar.Value    = mnftar       
        .txtMnfno2.Enabled     = .t.
        .txtMnfno2.Value    = mnfno2       
        .txtMnftar2.Enabled = .t.
        .txtMnftar2.Value    = mnftar2       
        .txtNw.Enabled         = .t.
        .txtNw.Value        = nw       
        .txtGw.Enabled         = .t.
        .txtGw.Value        = gw       
        .txtYuklim.Enabled     = .t.
        .txtYuklim.Value    = yuklim       
        .txtGidlim.Enabled     = .t.
        .txtGidlim.Value    = gidlim

        .acente1.Enabled     = .t.
        .bayrak1.Enabled     = .t.
       
        .cmdNew.Visible = .f.
        .cmdSave2.Visible = .t.
        .cmdCancel.Visible = .t.       
        .cmdEdit.Visible = .f.
        .cmdDelete.Visible = .f.
        .cmdClose.Visible = .f.                       
        .cmdkodu.Visible = .f.
        .cmdadi.Visible = .f.
*        .grdListe.Enabled = .f.
        .txtAdi.SetFocus()
    EndWith
EndProc

******************************************************************
Procedure ppDelete
******************************************************************
    With oForm
*        If .tnHandle > 0
            m.lnResult = MessageBox('Silmek istediğinize'+Chr(13)+'eminmisiniz?', ;
                4+32+256, 'Silme Onayı')
            If lnResult = 6
               DELE
               MessageBox('Silme işlemi'+Chr(13)+'başarıyla tamamlandı', 64, 'Silme Onayı')

*                .cmdListe.Click()
                .grdListe.Refresh()
                .grdListe.SetFocus()
            EndIf
*        EndIf
    EndWith
EndProc

******************************************************************
Procedure ppkodu
******************************************************************
    With oForm
         SET ORDER TO 1
         GO TOP
        .grdListe.Refresh()
        .grdListe.SetFocus()
    EndWith
EndProc

******************************************************************
Procedure ppadi
******************************************************************
    With oForm
         SET ORDER TO 2
         GO TOP
        .grdListe.Refresh()
        .grdListe.SetFocus()
    EndWith
EndProc

******************************************************************
Define Class myGrid as Grid
******************************************************************
*    Top = 62
    Top = 260
    Left = 2
    Height = 310
    Width = 635
    ColumnCount = 18
    DeleteMark = .t.
    RecordMark = .t.
    ReadOnly = .T.
    RecordSource = "gemi"
    ScrollBars = 3
    GridLineColor = Rgb(192,192,192)
   
    Procedure Init
        With this
*       Scatter Name This.oRecord Memo

            .Column1.Header1.Caption = 'Geliş Kodu'
            .Column1.Width = 90       
            .Column1.ControlSource = "gemi.no"

            .Column2.Header1.Caption = 'Gemi Adı'
            .Column2.Width = 170       
            .Column2.ControlSource = "gemi.adi"

            .Column3.Header1.Caption = 'Acente Adı'
            .Column3.Width = 210       
            .Column3.ControlSource = "gemi.aadi"

            .Column4.Header1.Caption = 'Bayrak Adı'
            .Column4.Width = 170       
            .Column4.ControlSource = "gemi.bayadi"

            .Column5.Header1.Caption = 'Geliş Sefer No'
            .Column5.Width = 90       
            .Column5.ControlSource = "gemi.sno"

            .Column6.Header1.Caption = 'Geliş Tarihi'
            .Column6.Width = 90       
            .Column6.ControlSource = "gemi.gtar"

            .Column7.Header1.Caption = 'Gidiş Kodu'
            .Column7.Width = 90       
            .Column7.ControlSource = "gemi.ggkod"

            .Column8.Header1.Caption = 'Gidiş Sefer No'
            .Column8.Width = 90       
            .Column8.ControlSource = "gemi.sno2"

            .Column9.Header1.Caption = 'Gidiş Tarihi'
            .Column9.Width = 90       
            .Column9.ControlSource = "gemi.dtar"

            .Column10.Header1.Caption = 'Geliş Mnf No'
            .Column10.Width = 90       
            .Column10.ControlSource = "gemi.mnfno"

            .Column11.Header1.Caption = 'Geliş Mnf Tarih'
            .Column11.Width = 90       
            .Column11.ControlSource = "gemi.mnftar"

            .Column12.Header1.Caption = 'Gidiş Mnf No'
            .Column12.Width = 90       
            .Column12.ControlSource = "gemi.mnfno2"

            .Column13.Header1.Caption = 'Gidiş Mnf Tarih'
            .Column13.Width = 90       
            .Column13.ControlSource = "gemi.mnftar2"

            .Column14.Header1.Caption = 'Net Weigth'
            .Column14.Width = 90       
            .Column14.ControlSource = "gemi.nw"

            .Column15.Header1.Caption = 'Gross Weigth'
            .Column15.Width = 90       
            .Column15.ControlSource = "gemi.gw"

            .Column16.Header1.Caption = 'Yükleme Limanı'
            .Column16.Width = 90       
            .Column16.ControlSource = "gemi.yuklim"

            .Column17.Header1.Caption = 'Varış Limanı'
            .Column17.Width = 90       
            .Column17.ControlSource = "gemi.gidlim"
                       
                       
        EndWith
    this.SetAll('Enabled',.f.,'textbox')
    this.SetAll('DisabledForeColor',0,'textbox')

    EndProc
   
    Procedure AfterRowColChange
        Lparameters nColIndex
        DoDefault(nColIndex)
        With oForm
*        BROWSE
            .txtno.Value         = No
            .txtadi.Value        = Adi
            .txtAadi.Value         = Aadi

            .txtBayadi.Value     = bayadi
            .txtSno.Value         = sno
            .txtGtar.Value         = gtar           
            .txtGgkod.Value     = ggkod           
            .txtSno2.Value         = sno2
            .txtDtar.Value         = dtar   
            .txtMnfno.Value     = mnfno                                 
            .txtMnftar.Value     = mnftar
            .txtMnfno2.Value     = mnfno2                                 
            .txtMnftar2.Value     = mnftar2
            .txtNw.Value         = nw                                 
            .txtGw.Value         = gw
            .txtYuklim.Value     = yuklim
            .txtGidlim.Value     = gidlim
           
           
        EndWith
       Thisform.Refresh()
    EndProc
EndDefine


*  Procedure Init
*    This.grdOrders.Columns(1).ReadOnly = .T.
*    This.grdOrders.SetAll( "DynamicBackColor", ;
*       "(IIF(orders.order_net > 1000, 0x4040FF, 0xFFFFFF))" )
*  Endproc


PROCEDURE HATA
? ERROR()
? MESSAGE()
WAIT
RETURN

2

Re: FORMDA "connat access the selected table" hatası alıyorum

Onders;

Formun Load 'ında

Datasession = 2 && Private session

yapmayı deneyebilirsin. Böylece Colose ALL satırına hiç ihtiyacında kalmaz.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

3

Re: FORMDA "connat access the selected table" hatası alıyorum

Uğur teşekkürler.

Yazdığın değişiklik sorunu çözdü.

2. bir sorunum. DÜZELT(EDIT) BUTONUN bastığım zaman acente ve bayrak butonunda GEMI.DBF dosyasında karşılıkları olan ano(Acente no) ve bayno (bayrak no) değerlerini nasıl combobax ta seçili değer haline getirip combobox da bu degerlerin karşılıklarını göstertebilirim. ?

için yardımcı olabilirmisin ?

Teşekkürler

4 Son düzenleyen, ugurlu2001 (23.08.2010 13:27:22)

Re: FORMDA "connat access the selected table" hatası alıyorum

Ondesr, söylediğini tam anlayamadım. Şunu mu demek istedin:

EDIT moduna geçtiğinde; mevcut field 'ın GEMI.AcenteNo ve GEMI.BayrakNo değerlerini Combobox ta mı göstermnek istiyorsun? Eğer öyle ise Acente no ve Bayrakno değerleri başka bir tablodan mı geliyor ( ilişkili ) yoksa GEMI tablosunda; bu fieldlarda olan tüm kayıtların listesi mi?

Biraz daha açıklama olursa  fikir verebilirim

Not : Birde sorun ile ilgisi yok ama kendimi tutamadım. Eskiden bendede bu yanlış alışkanlık vardı :
--
APPEND BLANK

Visual Fox Pro
REPLA no          WITH .txtNo.Value  

           REPLA adi         WITH .txtAdi.Value
*           REPLA aadi         WITH .txtAadi.Value 
           REPLA ano         WITH sakla1
           REPLA aadi         WITH sakla2
*           REPLA bayadi     WITH .txtBayadi.Value 
           REPLA bayno         WITH sakla3
           REPLA bayadi        WITH sakla4
           REPLA sno         WITH .txtSno.Value 
           REPLA gtar         WITH .txtGtar.Value 
           REPLA ggkod         WITH .txtGgkod.Value 
           REPLA sno2         WITH .txtSno2.Value 
           REPLA dtar         WITH .txtDtar.Value 
           REPLA mnfno         WITH .txtMnfno.Value 
           REPLA mnftar         WITH .txtMnftar.Value 
           REPLA mnfno2         WITH .txtMnfno2.Value 
           REPLA mnftar2     WITH .txtMnftar2.Value 
           REPLA nw             WITH .txtNw.Value 
           REPLA gw             WITH .txtGw.Value 
           REPLA yuklim         WITH .txtYuklim.Value 
           REPLA gidlim         WITH .txtGidlim.Value

Yerine ;

Visual Fox Pro
APPEND BLANK 

REPLACE ;
no          WITH .txtNo.Value, ;
adi         WITH .txtAdi.Value , ;
ano         WITH sakla1 , ;
aadi         WITH sakla2, ;
bayno         WITH sakla3 , ;
bayadi        WITH sakla4, ;
sno         WITH .txtSno.Value  , ;
gtar         WITH .txtGtar.Value, ; 
ggkod         WITH .txtGgkod.Value  , ;
sno2         WITH .txtSno2.Value  , ;
dtar         WITH .txtDtar.Value  , ;
mnfno         WITH .txtMnfno.Value  , ;
mnftar         WITH .txtMnftar.Value  , ;
mnfno2         WITH .txtMnfno2.Value  , ;
mnftar2     WITH .txtMnftar2.Value  , ;
nw             WITH .txtNw.Value  , ;
gw             WITH .txtGw.Value  , ;
yuklim         WITH .txtYuklim.Value  , ;
gidlim         WITH .txtGidlim.Value


deneyebilirsin; aynı kodu defalarca yerine sadece bir kez yürütürsün.

Hatta daha iyisi; Formundaki tüm Field ların ControlSource propertiy lerini GEMI D;BF ile ilişkilendir
tüm fieldları tek tek dolaşıp REPLACE yapmak yerine GATHER ile bir seferde yaz. SCATTER ile de Tablodan Form a alabilirsin ...

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

5

Re: FORMDA "connat access the selected table" hatası alıyorum

BAYRAK.DBF
ACENTE.DBF
Combobox ta kullanılıyor. her biri için ayri bir combobox var.

Edit yapıldığında aktif olan data da (GEMI.DBF) ano ve bayno olarak tanımlı. Daha önce atanmış olan ano (Acente no ) ve bayno (Bayrakno) kayıt numaralrı EDIT TUŞUNA basıldığında COMBOBOX larda aktif olup gözükmesini istiyorum..

Aşağıdaki gibi denedim olmadı...-)

  Procedure Load
     SET DELE ON
     SELE 1
     USE gemi INDEX gemi1,gemi2
     SELE 2
     USE acente INDEX acente2,acente1
     SELE 3
     USE bayrak INDEX bayrak2,bayrak1

     sele 1
   Endproc

******************************************************************
Procedure ppEdit
******************************************************************
    With oForm
*        APPEND BLANK

            SELE 1
            sakla5=ano
            sakla6=bayno
            SELE 2
            SET ORDER TO 2
            SEEK sakla5
            SET ORDER TO 1
            SELE 3
            SELE 2
            SET ORDER TO 2
            SEEK sakla6
            SET ORDER TO 1
            SELE 1

6

Re: FORMDA "connat access the selected table" hatası alıyorum

Onders hala tam olarak anladığımdan emin değilim ama ben yöntem olarak kendi formumda şunu yapıyorum:

Form 'um load ında kullanmak istediğim Combobox lar için CURSOR oluşturuyorum:

Select GEMI.BNayno From GEMI Into Cursor CrsBayno

gibi.

Sonra bu cursorları formumda kullanıyorum.


Select GEMI.ano From GEMI Into Cursor CrsAno

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

7

Re: FORMDA "connat access the selected table" hatası alıyorum

Şöyle sorayım.
Edit le bir işlem yaptım. Combobox da işlemi yapılmış olan kaydın görüntüsü kaldı.
Formu kapatmadan tekrar edit le işlem yaptığımda Comboboxta eski işlem görüntüsü kalıyor.
Bunu Combobox ı hiç işlem yapmamış gibi nasıl tazeliyebilirim. ?

8

Re: FORMDA "connat access the selected table" hatası alıyorum

edit sonrasi save ettikten sonra

Visual Fox Pro
thisform.combobox1.displayvalue=""

yada

Visual Fox Pro
thisform.combobox1.value=""

yaparak degerini bosaltmak

yada
combobox i SQL Select ile doldurdu isen Ugur dedigi gibi

Visual Fox Pro
thisform.combobox1.requery()

9

Re: FORMDA "connat access the selected table" hatası alıyorum

1929 - THIS FORM CAN ONLY BE USED WITHIN A METHOD HATASI GELDİ ...