過去ログ

                                Page     305
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼フィールド名の更新  YUUKI 03/5/28(水) 20:50
   ┣VBAとして答えてみますね。  こうちゃん 03/6/2(月) 10:08
   ┃  ┗Re:VBAとして答えてみますね。  YUUKI 03/6/3(火) 23:31
   ┗Re:フィールド名の更新  イケガミ 03/6/4(水) 2:28
      ┣フォローありがとうございます。  こうちゃん 03/6/4(水) 8:49
      ┗ありがとうございます  YUUKI 03/6/18(水) 9:25

 ───────────────────────────────────────
 ■題名 : フィールド名の更新
 ■名前 : YUUKI
 ■日付 : 03/5/28(水) 20:50
 -------------------------------------------------------------------------
   現在VBから*.mdbファイルを読込んでいるのですが、
現在のフィールド名から新しいフィールド名にしたいのですがどうすればいいのでしょうか?
レコードの更新はわかるのですが、フィールドの更新のやりかたがわかりません。
レコードの更新みたいにEditメソッドを使うのですか?

 ───────────────────────────────────────  ■題名 : VBAとして答えてみますね。  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/6/2(月) 10:08  -------------------------------------------------------------------------
   YUUKIさん、こんにちは

どなたかがお答えになっていたような気がしましたが、削除されたようなので・・

>現在VBから*.mdbファイルを読込んでいるのですが、
>現在のフィールド名から新しいフィールド名にしたいのですがどうすればいいのでしょうか?
>レコードの更新はわかるのですが、フィールドの更新のやりかたがわかりません。
>レコードの更新みたいにEditメソッドを使うのですか?

AccessのVBAで、ADOXを使って、フィールド名を変更する例です。
参照設定で「Microsoft ADO Ext 2.x for DLL and Security」にチェックしておいてください。
テーブル名、フィールド名等は実際のものとして試験してみてくださいね。

Public Sub FldNameChange()

  Dim Myctlg As New ADOX.Catalog
  Dim Tbl As ADOX.Table
  Dim Fld As ADOX.Column
  
  Myctlg.ActiveConnection = CurrentProject.Connection
  'テーブルの指定
  Set Tbl = Myctlg.Tables("TABLE1")
  'フィールド名変更。ここは実際のものにしてください。
  'この例ではフィールド名の最後に"99"を付加しています。
  For Each Fld In Tbl.Columns
    Fld.Name = Fld.Name & "99"
  Next Fld
  
  Set Tbl = Nothing
  Set Myctlg = Nothing

End Sub

#ちなみにVBから呼び出す場合は、カタログ指定で・・
  Orgcat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & FNAME & ";" & _
    "Jet OLEDB:Database Password=" & PSWD
  Set Orgtbl = Orgcat.Tables.Item(TBLNAME)
ってな感じで、指定する必要があります。
参照設定等も違うと思いますのでご注意ください。
(VBはよくわからないので、これ以上の説明は無理くさい^^;)

 ───────────────────────────────────────  ■題名 : Re:VBAとして答えてみますね。  ■名前 : YUUKI  ■日付 : 03/6/3(火) 23:31  -------------------------------------------------------------------------
   こうちゃんさん、こんばんは
回答有難うございます。
早速試してみたいと思いますが
しかし、現在少し立てこんでまして結果報告が遅れるかもしれませんが
参考にさせていただきます。

▼こうちゃん さん:

>AccessのVBAで、ADOXを使って、フィールド名を変更する例です。
>参照設定で「Microsoft ADO Ext 2.x for DLL and Security」にチェックしておいてください。
>テーブル名、フィールド名等は実際のものとして試験してみてくださいね。
>
>Public Sub FldNameChange()
>
>  Dim Myctlg As New ADOX.Catalog
>  Dim Tbl As ADOX.Table
>  Dim Fld As ADOX.Column
>  
>  Myctlg.ActiveConnection = CurrentProject.Connection
>  'テーブルの指定
>  Set Tbl = Myctlg.Tables("TABLE1")
>  'フィールド名変更。ここは実際のものにしてください。
>  'この例ではフィールド名の最後に"99"を付加しています。
>  For Each Fld In Tbl.Columns
>    Fld.Name = Fld.Name & "99"
>  Next Fld
>  
>  Set Tbl = Nothing
>  Set Myctlg = Nothing
>
>End Sub
>
>#ちなみにVBから呼び出す場合は、カタログ指定で・・
>  Orgcat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
>    "Data Source=" & FNAME & ";" & _
>    "Jet OLEDB:Database Password=" & PSWD
>  Set Orgtbl = Orgcat.Tables.Item(TBLNAME)
>ってな感じで、指定する必要があります。
>参照設定等も違うと思いますのでご注意ください。
>(VBはよくわからないので、これ以上の説明は無理くさい^^;)

 ───────────────────────────────────────  ■題名 : Re:フィールド名の更新  ■名前 : イケガミ <ikegami_kumamoto@hotmail.com>  ■日付 : 03/6/4(水) 2:28  -------------------------------------------------------------------------
   #バージョンはきちんと書いてくださいね。

補足になるんですが、ADOXとかは基本的にAccess2000以降だと
思います。
なので、それに該当するのならば以下は無視してください。

クエリ(SQL文)でも同様のことができると思います。
(バージョンが違うかもしれませんので、ハズシかもしれません。)

ヘルプで、「Jet SQL リファレンス」の中の「ALTER TABLE ステートメント」を
確認してみてください。

なお、更新(変更)ができるのかどうかは、試したことがないので、
分からないです。。。

 ───────────────────────────────────────  ■題名 : フォローありがとうございます。  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/6/4(水) 8:49  -------------------------------------------------------------------------
   イケガミさん、こんにちは

>#バージョンはきちんと書いてくださいね。
>補足になるんですが、ADOXとかは基本的にAccess2000以降だと
>思います。
ですね、97ではADO不可です。

>ヘルプで、「Jet SQL リファレンス」の中の「ALTER TABLE ステートメント」を
>確認してみてください。
>
>なお、更新(変更)ができるのかどうかは、試したことがないので、
>分からないです。。。

ALTER TABLEでやる場合は、フィールド名の変更ができませんので、DROP COLUMNで削除して、ADD COLUMN で追加する手法をとります。
データが既に格納されている場合は、仮テーブルに一旦コピーする等の対策が必要ですね。
(でしたよね・・多分^^;)

 ───────────────────────────────────────  ■題名 : ありがとうございます  ■名前 : YUUKI  ■日付 : 03/6/18(水) 9:25  -------------------------------------------------------------------------
   ▼イケガミ さん:
>#バージョンはきちんと書いてくださいね。
>
>補足になるんですが、ADOXとかは基本的にAccess2000以降だと
>思います。
>なので、それに該当するのならば以下は無視してください。
>
>クエリ(SQL文)でも同様のことができると思います。
>(バージョンが違うかもしれませんので、ハズシかもしれません。)
>
>ヘルプで、「Jet SQL リファレンス」の中の「ALTER TABLE ステートメント」を
>確認してみてください。
>
>なお、更新(変更)ができるのかどうかは、試したことがないので、
>分からないです。。。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 305