現在Access(Access2003)で、VBAから固定長のファイルを作成しようとしております。 実現したいことは、「AAA」テーブルから固定長ファイル「WorkTable.txt」を作成し、エクスポートさせたいです。 (但し、各項目のデータ以外はスペースで埋めたいです) ■AAAテーブル ・名前_カナ(30バイト) ←半角カナ項目 ・名前_漢字(50バイト) ←全角項目 今困っていることが、「名前_カナ」のフィールドサイズを「30」と設定したのにもかかわらず、 実行した結果「36」バイトも領域として取られております。 これはなぜなのか、どうしたら30バイトの領域になるのかご教授頂きたいです。 以下VBAです。 ----------------------------------------------------------------------- 'WorkTableのカラを作成 Function MakeTable(strNewTableName As String) Dim dbsCurrent As Database Dim tdfNew As TableDef Dim strFieldName As String Set dbsCurrent = OpenDatabase(CurrentDb.Name) Set tdfNew = dbsCurrent.CreateTableDef(strNewTableName) With tdfNew .Fields.Append .CreateField("名前_カナ", dbText, 30) .Fields.Append .CreateField("名前_漢字", dbText, 50) dbsCurrent.TableDefs.Append tdfNew End With dbsCurrent.Close End Function ----------------------------------------------------------------- ''コマンドボタンをクリックした時のイベント Private Sub コマンド1_Click() Dim strSQL As String Dim db As Database Set db = CurrentDb Call MakeTable("WorkTable") strSQL = "" strSQL = "INSERT INTO WorkTable( " strSQL = strSQL & "名前_カナ ," strSQL = strSQL & "名前_漢字 )" strSQL = strSQL & " SELECT" strSQL = strSQL & " Left(StrConv([名前_カナ] & Space(30), 8), 30)," '半角カナ項目 strSQL = strSQL & " Left(StrConv([名前_漢字] & Space(25), 4), 25)" '全角項目 strSQL = strSQL & " FROM" strSQL = strSQL & " AAA" db.Execute strSQL End Sub 大変困っております。 どうぞよろしくお願い致します。
↧