• ベストアンサー

VB2008少し理解しました^^

3回目の質問です! お願いします。 まったく分からないところから、個人的な練習としての”足し算で答えが出させる”ところまで理解出来ました。 それで、次に進もうとしているのですが、上記の例題で入力して数字と答えが残っていく方法はデーターベースとかいうのを理解すれば良いのでしょうか? また、その記録を利用して必要なものを・・例えば3回目の計算と10回目の計算ではどちらが大きいか?・・というプログラムもデーターベースを利用してそこからデーターを取り出して必要な計算をさせるプログラムを作るということで良いのでしょうか? 初めてからまだ3回目の質問ということで、質問内容も素人内容だとは思いますが、貧乏でVB2008の本まで買う余裕がないので・・すみませんが誰かお付き合いして頂けませんでしょうか^^

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

  • ベストアンサー
回答No.4

> 私には無理です  分かりませんでした・・ 参考に書いたのは,MSDNという,Microsoftの一次情報源 (正確には日本語版なので英語版を一次情報とする二次情報源ですが) のURLでした。 最初の頃はわからないとは思いますが,MSDNの読み方がわかると宝の山になります。 > 残すだけではなく、質問にも書いたのですがそれを再度利用するようにしてみたいのです。 再度利用するというのは,プログラムを一度終了した後にもう一度起動した場合にも,元のデータを残したいということでしょうか。 これを実装するのは,結構手間のかかることです。 一番簡単な方法は, ・保持したい情報をシリアライズ可能なオブジェクトに保持させて,起動時にファイルからデシリアライズして終了時にファイルにシリアライズする。 ことなのですが,簡単に済ます代わりに.NET Frameworkに対する知識が必要になります。 このため,初心者の方にはまったくお勧めできません。 まずは,ファイルの入出力に慣れるところから始めるのがよいでしょう。 例えば, Dim col As List(Of Integer) ' 過去の履歴を保持するためのオブジェクト。新規データはAddで追加していく。 があるとして, ・出力 ' 出力ファイル名を決定する Dim outputFile As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "data.txt") Using writer As New StreamWriter(outputFile, False, Encoding.Default) ' 出力用のライタを作成する  For Each value As Integer In col ' 履歴に含まれる全ての値について...   writer.WriteLine(value) ' ライタに出力する  Next  writer.Close() ' 一応,ライタを閉じておく (End Usingで自動で閉じられるが)。 End Using ・入力 ' 入力ファイル名を決定する Dim inputFile As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "data.txt") If File.Exists(inputFile) Then ' 入力ファイルが存在すれば  Using reader As New StreamReader(inputFile, Encoding.Default, true) ' 入力用のリーダを作成する   Do    Dim line As String = reader.ReadLine() ' リーダから一行読む    If line Is Nothing Then Exit Do ' 最後まで読んだのであればループから抜ける    Dim value As Integer = 0    If Integer.TryParse(line, value) Then col.Add(value) ' その行がIntegerの値を書き込んだ物であれば,履歴に追加する   Loop  End Using End If のようなコード (上記は未テストに付きバグがある可能性アリ) を作り, ・起動時に入力を行う ・終了時に出力を行う とすれば,データを保存できます。 # どのように保存されたかは,マイドキュメント (WindowsXP) or ドキュメント (Windows Vista)にできる,data.txtを確認してください。 <MSDN> ・Path.Combine http://msdn.microsoft.com/ja-jp/library/system.io.path.combine.aspx ・Environment.GetFolderPath http://msdn.microsoft.com/ja-jp/library/system.environment.getfolderpath.aspx ・Environment.SpecialFolder http://msdn.microsoft.com/ja-jp/library/system.environment.specialfolder.aspx ・StreamWriter http://msdn.microsoft.com/ja-jp/library/f5f5x7kt.aspx ・Encoding.Default http://msdn.microsoft.com/ja-jp/library/system.text.encoding.default.aspx ・StreamWriter.Close http://msdn.microsoft.com/ja-jp/library/system.io.streamwriter.close.aspx ・File.Exists http://msdn.microsoft.com/ja-jp/library/system.io.file.exists.aspx ・StreamReader http://msdn.microsoft.com/ja-jp/library/akzyzwh9.aspx ・StreamReader.ReadLine http://msdn.microsoft.com/ja-jp/library/system.io.streamreader.readline.aspx ・Int32.TryParse http://msdn.microsoft.com/ja-jp/library/f02979c7.aspx ・List(Of T).Add http://msdn.microsoft.com/ja-jp/library/3wcytfd1.aspx

PrinApple
質問者

お礼

たくさん教えて頂いて有難うございます(ぺこ 早くそれらが使えるようにがんばります!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • tom11
  • ベストアンサー率53% (134/251)
回答No.5

こんにちは、 >貧乏でVB2008の本まで買う余裕がないので・ 本を買わなくとも、以下のホームページを読んで、理解でいれば いろいろなことができる様になりますよ http://homepage1.nifty.com/rucio/main/main.htm 基本的なことが、詳しく説明されているし、 サンプルも沢山あります。

PrinApple
質問者

お礼

今それで勉強していま~す^^

全文を見る
すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

#1です。 例えばExcelであれば結果をシートに書き出す事で、コードの実行を停止した後でも それまでの値を引き出して利用する事は出来ます。 VBならテキストファイルに書き出すとかデータベースにするとか方法はありますが、 Excelで行なう方法よりもレベルが上がるかなと。 ⇒Excelでも同様の事は出来ます。 データベース講座 http://homepage1.nifty.com/rucio/main/VBdotNet/Database/index_db.htm 私も”やってみたい”と思い突き進んだ事もありますが、結局混乱したので ちょこちょこ進めてVBAも初級レベルになったかな位です。 ⇒昔Basic(X-BASIC)を少しいじっていたのが役だったとは思います。

PrinApple
質問者

お礼

お互いがんばりましょうね~ って・・はじめたばかりで偉そうに言えないけど^^

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

答えを残すだけが目的であればデータベースは不要です。 List(Of Integer)にAddしていけば残すことができます (プログラムの終了までですが)。

参考URL:
http://msdn.microsoft.com/ja-jp/library/6sh2ey19.aspx
PrinApple
質問者

お礼

リンク先に行ってみました! 私には無理です  分かりませんでした・・ #1さんも回答ありがとうございました 残すだけではなく、質問にも書いたのですがそれを再度利用するようにしてみたいのです。

全文を見る
すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

今回のものに参考になるかはわかりませんが、 ボタンを1個用意する。 プロジェクト>参照の追加でCOMタブ。 Microsoft Scripting Runtime を追加する。 Private mydic As New Scripting.Dictionary Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim j As Integer i = mydic.Count mydic(i + 1) = 10 * i For j = 1 To mydic.Count MsgBox(j & "番目の値は" & mydic(j)) Next End Sub とかでも実行中は値を保持していたりします。 ⇒これが全てではなく、且つ正しいかは勉強不足ですけど。 VBAを少しやっているので何となくは出来た(?)位ですので、ご参考になるかどうか・・・ >初めてからまだ3回目の質問ということで、質問内容も素人内容だとは思いますが、貧乏でVB2008の本まで買う余裕がないので・・ 他の方はわかりませんが、私は参考書から初めました。 まず基本部分は押さえておかないとなりませんし。 別段2008が最新と言っても2005から初めても宜しいんじゃないでしょうか?

PrinApple
質問者

お礼

2005と2008の違いも分かりません>< 同じものだと思っていましたw

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB2010のデータ

    初歩的な質問ですみません。 無料でVB2010をインストールして、遠い昔の記憶でVBを扱っていたのでプログラムを作ろうと思っています。。。。 で。かんじんなデータ(アクセスでいえばテーブル)は、どうやってなにで作っていいのかわかりません。たとえばSQLSeverを買ったりとかはしないので、エクセルにデータを作ってそこから読んでVB2010のListboxで表示する。VB2010で登録したデータをエクセルでデータとして管理するってことをしたらいいのでしょうか? VBの文法を扱うサイトはあるのですが、肝心なデータベースの作り方というか、データベースはどうやって構築するのかがわかりません。 どなたかわかりやすくご教授ください。

  • AccessからVBに移行してみたいのですが

    数年前にAccessを利用して便利ソフト的な物を作りました。 当時も今もプログラムなどに関しては素人なのですが、参考書等でVBAを勉強しつつ、データベースを管理するソフト(?)を一応は作ることができました。 先日友人から「そのソフト便利だから家で使ってみたい」と言われ、その友人がAccess環境のあるPCを使っていないこともあり、せっかくなので手元にあるVB6.0で作り直してみたらどうなのか、と考えています。 しかし何を用意したらいいのか、実際にできるのか、皆目見当もつかない始末・・・どうかこのズブの素人にお教えください。 私が作ったのは、フォームにコントロールだけ配置し、動作などはVBAで書き、VBA内でSQL文を書いてテーブルから必要な情報を検索・登録等をしています。 (1)VB6.0で作り直したら、他のPCで使えるようにしたいという思惑は果たせるのでしょうか? (2)VB6.0で無理となると、何か良い方法はないでしょうか? (3)もしVBで可能とすると、VB6.0以外に用意すべき物、事はあるでしょうか? (4)BV6.0でそれなりのフォームを作ったとしても、今あるAccessのデータベースを直接使ったりできるのか…何よりデータベースへの接続は何を介するのか? 質問内容自体がもしかしたら見当外れかもしれません…その辺の判断もつかない程なのです。 家庭内で軽く使う程度のものなのでガチガチな環境を作ったりお金をかけたりはできないので、それを前提として教えて頂けると非常に助かります。よろしくお願いします。

  • VBでSQL-serverをプログラムする

    VBでmdbファイルを操作するプログラムを勉強していますが、データベースをサーバー管理するならば、AccessではなくSQL-serverなどを使った方が良いと聞きました。 質問なんですが、 SQL-serverには、Accessと同じようにユーザーフォームを使ってデータベースシステムを構築するような機能が付いているのでしょうか? そもそもOracle、dBase、SQL-serverといったデータベースソフトは、DBそのものを作成するソフトであって、DBシステムを構築するにはVBなどによるプログラム開発が必要なのでしょうか? 分かりにくい質問ですみません。

  • VBとSQLで、、、、

    私は最近ソフトウェアの開発に携わることになりました。 私自身プログラミングの経験は全くありません。 何を命じられたのかといいますと、VBとSQLをつかって、サーバー上の  データベースにクライアントからアクセスして、ほしいデータだけをもってくる  業務を支援するようなソフトを作るのです。 例えば、ユーザーが日付の範囲だけをいれると、その間に店を訪れた人のすんでい  る地域別、さらにそのお客の年代別で何人いるのかというようなものが  ボタンひとつでだせるようなものなんです。 まったく知識がなくてとりあえずVBの基本とSQLコマンドの本を片手に  やっています。(あと、アクセスでおおよそのデータベースについて学びまし  た) で、結局何がいいたいのかと申しますと、VBとSQLを利用したデータベースの  構築に関する良い文献を紹介していただきたいのです。 VBは初心者なのでとりあえず、それようのものを。 あと、ストアドというものを駆使するらしいので、それについての詳しい本を  紹介してください。サイトなんかでもよいです。 それでは、よろしくお願い致します。  (多分、質問の内容もわけのわからないことを言ってるかもしれません^^;)

  • VB2013とSQLServer

    VB2013でプログラムを作成し、データベースは Expressに一緒にダウンロードされたSQLServerを 利用しています。 作成したEXEファイルなどはファイルサーバーに入っており 複数のクライアントPCで利用しています。 1台のPCで使用していると他のPCではデータベースをOPENできませんと言われて 2台同時に使用できません。 完全にプログラムを終了させないとメニューに戻っただけではだめでした。 (メニュー画面はフォームを呼ぶだけなのでデータベースは扱ってません) 簡単なプログラムなのでフォームの中のprivate sub 単位でOPEN~CLOSEはしてます。 EXPRESSは複数台で利用することはできないのでしょうか? ほかのPCをすべて終了させればできるのです。 なにか対処の方法をお解りの方がいらっしゃいましたらよろしくお願いいたします。

  • VBとVBAの違い

    お世話になります。 現在、ExcelVBAで機械設計の計算をさせようと思い勉強しているのですが、VBとVBAの違い(VBと比較したとき、VBAできること、できない事)の境目?がいまいち判りません。 まだまだ勉強中で困惑しております。このままExcelVBAを勉強していく物か、VBについて勉強していくか迷っています。このままExcelVBAを勉強してExcelVBAを理解すれば判断できるかと思うのですが、畑違いの勉強になってしまわないかと心配です。 やりたいことは、各種計算の簡略化です。 現在は、関数電卓で行っていますが、これをパラメータを入力すると計算結果が出る。このような物を作りたいと思っています。 長くなってしまったのでまとめると、 1、VBAとVBの違い 2、ExcelVBAで設計計算が可能か あと、 プログラムにより計算させるときに、最適なプログラム(JavaとかPHPとかHTML等など・・・)お勧めのプログラムがありましたらアドバイス頂けたらと思います。

  • VB2005でACCESSの処理

    VB5.0でACCESS(DAOを利用)を使っています。VB.NETが発表された時早速購入挑戦しましたが、データベースへの接続がスムーズに移行できそうになくgive-upしました。.NETは Windowsのprofessinal版でしか利用できなっかたのですがVB2005ではかなりその制限がゆるんだようです。 Microsofthへ電話したりHPで調べましたが、よくわからなかったので質問です。 1..NET系ではデータベースがXML志向のようですが、これってシークエンシャルファイルで使いにくいように思えますが、うまくいくのでしょうか? 2.DAOはVB5.0 6.0感覚で使えるのでしょうか? 3.上記のようなことが学べるVB2005の導入のいいトレーニングコースを紹介してください。 よろしくお願いいたします。

  • VB2005で、フォームを初期化したいのですが、教えてください。

    VB2005で、フォームを初期化したいのですが、教えてください。 VB2005で、フォームにデータベース内容(ORACLE)を表示するプログラムを作っています。その際、F8キーを押すと画面内容(テキストボックスやDatagridviewの編集内容)を初期ロード状態に戻すようにしたいと思い、F8キー押下時のイベントに、以下のようにプログラムしました。 dim frm as form frm = new form1 me.close frm.show() としてみましたが、me.closeで、プログラムが終了してしまうようです。 どうするのが適切かお教えください。

  • VB6のプログラムをWIN7で使いたい

    OSをXpからWIN7に移行しなければならなくなり、環境移行のテストをしています。 VB6で組まれた業務用プログラムがあり、現在Xpで動作しています。 このプログラム自体はWIN97の時代に作成されたものです。 簡単に説明しますと、データがAccessのデータベースにあり、それを使って技術計算をするプログラムです。 WIN97に入れると、セットアップは成功するのですが、Accessとデータをやり取りする部分でエラーが起きているようです。 そもそも、VB6自体がWIN7にはセットアップできないようで、再コンパイルできません(再コンパイルで動くかどうかも不明ですが)。 WIN7上で動かす良い方法がないでしょうか。

  • VBからサーバーへ

    初めてVBプログラミングをしようとしているものです。VBでサーバーに接続する方法がよく分かりません。アクセスに接続する方法はなんと無く理解できたのですが、SQLサーバへの接続方法がイメージがつかめないんです。プログラムは何人かが共通して利用できるものを考えています。どうかご教授のほどよろしくお願いします。 サーバー 2000 SQLサーバ2003 開発クライアントPC W2K VB6