• ベストアンサー

リストボックス

Do While Not rs.EOF   'データがある場合 Form2.List1.AddItem rs.Fields("顧客番号") & " " & rs.Fields("得意先名") rs.MoveNext Loop こうしたら、いちらんには 顧客番号  得意先名 111111111111   ああああ 11111111111   いいい と入っていて、得意先名をきちんと”ああああ”にそれえたいのですけどできるでしょうか? 桁数の指定とかできるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

顧客番号をTrim関数で前後スペースを取り除き、Len関数で長さを知り、一定の文字数との差のスペースをSpc関数で作り、&で結合してはどうですか。

その他の回答 (2)

  • SpeedKing
  • ベストアンサー率50% (6/12)
回答No.2

Listboxのカラムを使用する 以下のコード参照してください。ColumnCountでカラム数を指定し、TextColumnでコントロール値を保持します。 こちらの方が、桁を揃えるには適しています。 コードはヘルプ参照してください。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

>得意先名をきちんと”ああああ”にそれえたいのです >けどできるでしょうか? list1.AddItem rs.Fields("顧客番号") & vbTab & rs.Fields("得意先名") >桁数の指定とかできるでしょうか? LB_SETTABSTOPSで幅を指定できます。

参考URL:
http://www.vbvbvb.com/jp/gtips/0201/gSendMessageLbSettabstops.html

関連するQ&A

  • リストボックス

    例えば 例 データベースには    顧客名   旧姓    木村    工藤    朝比奈   遠藤    李     福井 っていう風にデータ”3件”が入っていまして、 Dim A As String * 10, B As String * 10 Do While Not rs.EOF .List1.FontName = "FixedSys" .List1.FontSize = "9" LSet A = rs.Fields!顧客名   LSet B = rs.Fields!旧姓 .List1.AddItem A & B rs.MoveNext Loop これを実行したらリストボックスには、 木村   工藤 朝比奈   遠藤 李   福井 っていうふうに、見た目的にも悪いので、旧姓側をきちんと頭をそろえたいのですがどうすれば解決しますでしょうか? LSETを使わないほうがいいのでしょうか?

  • 【VB】コンボボックスにデータベースから取り出した値を入れたい

    VB2005です。 表題の通りですがやり方がよくわかりません。 データベースに接続し、 SQLで重複しない値を取り出すところまではできています。 SQL=SELECT DISTINCT FieldName FROM TableName VB6の時はこんなソースでした Do Until rs.EOF    Combo1.AddItem.Fields("FieldName")    rs.MoveNext Loop VB2005ではどう書くのでしょう? よろしくご教授ください。

  • 重複チェック

    いま、重複チェックをしているのですが、MoveFirstで データをある分だけ調べていて、データが重複してなかったら、データを更新したいのですが、はじめにMoveFirst で、データを調べたので、カレント行が最終行にあると思うので、それを例えば、3行目のデータだったり、5行目のデータを変更したいのですが、よろしくお願いします。 重複チェック rs.MoveFirst   Do While Not rs.EOF    If Text2(0).Text <> rs.Fields(1) Then rs.MoveNext End If Loop rs.Fields(1) = Text2(0).Text

  • カレント行取得

    Do While Not rs.EOF  If Text1(0).Text <> rs.Fields(1) Then   /*--*--*/   rs.MoveNext     Else   msg = "コードが重複しています."   MsgBox msg, vbOKOnly, "重複チェック"   Text1(0).Text = ""   Text1(0).SetFocus  End If Loop *------ text1(1) = rs.fields(1) text1(2) = rs.fields(2) -------* データベース(Access)にデータが3件入っていて、例えば、1件目のデータを更新したいのですが今のソースでは、/*--*--*/でデータベースを次々読んでいるので、3件読み終えたときにカレント行が4件目にあると思うので、それを”任意”の行にしたいのですが教えてください。

  • VB6.0DataGridでのUpdate文で疑問?

    ADOの勉強したばっかりで、あまり詳しくありませんのでよろしくお願いします。 DataGridを使ってある条件で抽出しています。その抽出したものを更新したいのですが、 Do rs!分類ID = text1 rs.Update rs.MoveNext Loop Until rs.EOF という命令を書くと、いいような気がするのですが、なぜか抽出したデータが一個おきに書き換わります。 でも、 Do rs!分類ID = text1 rs.Update rs.MoveNext  if rs.EOF then rs.Previous END IF Loop Until rs.EOF と命令するとすべてのデータが書き換わります。 なぜなんでしょうか?疑問です。 VB6.0、ACCESS2000です。

  • (ADO)selectで取得できたレコードの総数

    SQL文にcount()を書かずにクエリを実行して、何レコードが得られたかを Do While Not rs.EOF  i = i + 1  rs.MoveNext Loop 以外の方法で知ることはできませんか? rsは場合によっては逆方向にrs.MovePrevみたいにできるらしいですが、今の環境では順方向しか対応していません。 環境はIIS、access、ADO、MDBです。

  • VBA ADOに関して

    お世話になります。 VBAに関して質問があります。 ADOでDBから値を取得する際、 TEXT型の値が全く取れてきません。 どなたか取得方法をご教授下さい。 宜しくお願い致します。 DB:Sybase OS: RedHat 8.0 Dim rs As ADODB.Recordset Dim sql As String sql = "select * from " & tblName //dbはADODB.Connection Set rs = db.Execute(sql) Do While Not rs.EOF //ここでTEXT型だと、取れてきません。  If IsNull(rs.Fields('Field名').Value) Then End If rs.MoveNext Loop

  • ACCESS ADOのMovePreviousについて

    毎度お世話になっております。 ACCESS2003を使用しています。 ACCESS ADOにて、レコードセットがeofになった後、 MovePreviousをし、MoveNextをし、 さらにもう一度MovePreviousをすると、 最終レコードの一つ前に戻ってしまいます。 テーブル1 フィールド1 フィールド2    1     あ    2     い    3     う    4     え    5     お コード Sub test()   Dim cn As New ADODB.Connection   Dim rs As New ADODB.Recordset   Set cn = CurrentProject.Connection   rs.Open "select * from テーブル1 order by フィールド1", cn, adOpenDynamic, adLockReadOnly   Do Until rs.EOF    rs.MoveNext   Loop   rs.MovePrevious   Debug.Print rs.Fields("フィールド1").Value   rs.MoveNext   rs.MovePrevious   Debug.Print rs.Fields("フィールド1").Value   rs.Close: Set rs = Nothing   cn.Close: Set cn = Nothing End Sub 一度目のdebug.printは5に、 二度目のdebug.printは4になります。 このような仕組みなのでしょうか。 ご教授お願いいたします。

  • ASPのSession変数を配列にしたいのですが。。。

    ASPのSession変数を配列にして使用したいのですが、どのように表記すればいいのでしょうか? Do Until rs.EOF ID=Session("ID(i)") i=i+1 rs.MoveNext Loop という感じに使用したいのですが。。。

  • Excel VBAコンボボックスについて

    いつもお世話になります。 現在ExcelのVBAを使用し、データベースより情報を取得しようと考えています。 データベースから情報の取得はできているのですが、 ボックスを開くたびにデータが下に追加されてしまいます。 ミスは理解できるのですが、どのようにすれば何度開いても同じ情報が 表示されるのか分かりません。 ご存知の方がいればご教授ください。 以下 コード Private Sub CbBox_sample_Change() mySQL = "select * from 情報 order by 日付 desc" Set rec = cnn.Execute(mySQL) Do While Not rec.EOF Form_main.CbBox_kaisei.AddItem (rec(2).Value) rec.MoveNext Loop End Sub ・これだとChangeするたびに増えていくんですよね。きっと。 Excel2002+WindowsXP+Oracle