テキスト広告:Amazon Primeday

水曜日, 6月 18, 2008

[VB→C#]VB 6 Functions to C#
































VB 6 FunctionsC# code
AbsSystem.Math.Abs
ArrayNew Object() { }
Asc, AscB, AscWMicrosoft.VisualBasic.Strings.Asc
AtnSystem.Math.Atan
ChooseInteraction.Choose
CBoolSystem.Convert.ToBoolean
CByteSystem.Convert.ToByte
CCurSystem.Convert.ToDecimal
CDateSystem.Convert.ToDateTime
CDblSystem.Convert.ToDouble
Chr(char)
CIntSystem.Convert.ToInt32
CLngSystem.Convert.ToInt64
CosSystem.Math.Cos
CommandInteraction.Command
CreateObjectCreateObject or New Instance in .NET
CStrSystem.Convert.ToString
CurDirFileSystem.CurDir
DateDateTime.Today
DateAddMicrosoft.VisualBasic.DateAndTime.DateAdd
DateDiffMicrosoft.VisualBasic.DateAndTime.DateDiff
DatePartMicrosoft.VisualBasic.DateAndTime.DatePart
DateSerialMicrosoft.VisualBasic.DateAndTime.DateSerial
DateValueMicrosoft.VisualBasic.DateAndTime.DateValue
DayMicrosoft.VisualBasic.DateAndTime.Day
DDBFinancial.DDB
DirFileSystem.Dir
EnvironInteraction.Environ
EofFileSystem.EOF
ExpSystem.Math.Exp
FileAttrFileSystem.FileAttr
FileDateFileSystem.FileDateTime
FileLenFileSystem.FileLen
FilterMicrosoft.VisualBasic.Strings.Filter
FixMicrosoft.VisualBasic.Conversion.Fix
FormatCurrencyMicrosoft.VisualBasic.Strings.FormatCurrency
FormatDateTimeMicrosoft.VisualBasic.Strings.FormatDateTime
FormatNumberMicrosoft.VisualBasic.Strings.FormatNumber
FreeFileFileSystem.FreeFile
FVFinancial.FV
GetAllSettingsInteraction.GetAllSettings
GetAttrFileSystem.GetAttr
GetObjectMicrosoft.VisualBasic.Interaction.GetObject
HexMicrosoft.VisualBasic.Conversion.Hex
HourMicrosoft.VisualBasic.DateAndTime.Hour
IIFInteraction.IIf
InputFileSystem.InputString
InputBoxMicrosoft.VisualBasic.Interaction.InputBox
InStr, InstrBMicrosoft.VisualBasic.Strings.InStr
InStrRevMicrosoft.VisualBasic.Strings.InStrRev
IntMicrosoft.VisualBasic.Conversion.Int
IpmtFinancial.IPmt
IRRFinancial.IRR
IsArrayMicrosoft.VisualBasic.Information.IsArray
IsDateMicrosoft.VisualBasic.Information.IsDate
IsEmptyMicrosoft.VisualBasic.Information.IsEmpty
IsMissingInformation.IsNothing
IsNullSystem.Convert.IsDBNull
IsNumericMicrosoft.VisualBasic.Information.IsNumeric
IsObjectInformation.IsReference
JoinMicrosoft.VisualBasic.Strings.Join
LBoundMicrosoft.VisualBasic.Information.LBound
LCaseSystem.String.ToLower
Left, LeftBSystem.String.Substring(0,..)
Len, LenBStrings.Len
LocFileSystem.Loc
LofFileSystem.LOF
LogSystem.Math.Log
LTrimSystem.String.TrimStart
Mid, MidBSystem.String.Substring
MinuteMicrosoft.VisualBasic.DateAndTime.Minute
MirrFinancial.MIRR
MonthMicrosoft.VisualBasic.DateAndTime.Month
MonthNameMicrosoft.VisualBasic.DateAndTime.MonthName
MsgBoxSystem.Windows.Forms.MessageBox.Show
NowSystem.DateTime.Now
NPerFinancial.NPer
PMTFinancial.Pmt
PPMTFinancial.PPmt
PVFinancial.PV
OctMicrosoft.VisualBasic.Conversion.Oct
QBColorInformation.QBColor
RateFinancial.Rate
ReplaceMicrosoft.VisualBasic.Strings.Replace
RGBMicrosoft.VisualBasic.Information.RGB
Right, RightBSystem.String.Substring
RndMicrosoft.VisualBasic.VBMath.Rnd
RoundSystem.Math.Round
RTrimSystem.String.TrimEnd
SecondMicrosoft.VisualBasic.DateAndTime.Second
SeekFileSystem.Seek
SgnSystem.Math.Sign
ShellInteraction.Shell
SinSystem.Math.Sin
SLNFinancial.SLN
Spacenew String(' ',...)
SPCFileSystem.SPC
SplitMicrosoft.VisualBasic.Strings.Split
SqrSystem.Math.Sqrt
StrConversion.Str
StrConvStrings.StrConv
StrCompSystem.String.Compare
StringNew String()
StrReverseMicrosoft.VisualBasic.Strings.StrReverse
SwitchInteraction.Switch
SydFinancial.SYD
TabFileSystem.TAB
TanSystem.Math.Tan
TimeMicrosoft.VisualBasic.DateAndTime.TimeOfDay
TimerMicrosoft.VisualBasic.DateAndTime.Timer
TimeSerialMicrosoft.VisualBasic.DateAndTime.TimeSerial
TimeValueMicrosoft.VisualBasic.DateAndTime.TimeValue
TrimSystem.String.Trim
TypeNameMicrosoft.VisualBasic.Information.TypeName
UBoundMicrosoft.VisualBasic.Information.UBound
UCaseSystem.String.ToUpper
ValConversion.Val
VarTypeMicrosoft.VisualBasic.Information.VarType
WeekdayMicrosoft.VisualBasic.DateAndTime.Weekday
WeekdayNameMicrosoft.VisualBasic.DateAndTime.WeekdayName
YearMicrosoft.VisualBasic.DateAndTime.Year
DoEventsSystem.Windows.Forms.Application.DoEvents()
CallByNameUNSUPPORT
CVErrUNSUPPORT
ErrorUNSUPPORT
GetAutoServerSettingsUNSUPPORT
GetAutoServerSettingsUNSUPPORT
IMEStatusUNSUPPORT
IsErrorUNSUPPORT
LoadPictureUNSUPPORT
LoadResPictureUNSUPPORT
LoadResDataUNSUPPORT
LoadResStringUNSUPPORT


■参考サイト
Netcoole Migration Solutions
http://www.netcoole.com/default.htm

[C#]日付関連(日数・・・)

▼質問
2つあるDateTime型の日付範囲の日数を知りたいんだけど・・・。どうしたらよいの?

▼回答
C#で簡単にやるには次の様にすると良いよ!

Microsoft.VisualBasic.DateAndTime.DateDiff(Microsoft.VisualBasic.DateInterval.Day,fromDate, toDate,Microsoft.VisualBasic.FirstDayOfWeek.System,Microsoft.VisualBasic.FirstWeekOfYear.System)

なぜか?C#では、パラメータの4と5がないとエラーになる。

■参考サイト
DateDiffをC#で使いたい。: DOBON.NETプログラミング掲示板過去ログ
http://dobon.net/vb/bbs/log3-14/7944.html

金曜日, 6月 06, 2008

[C言語]プリプロセッサ命令

__LINE__と__FILE__マクロは現在処理中の行数と現在処理中のファイル名を表す
__DATE__マクロには現在の日付が月/日/年 というフォーマットで入る
__TIME__マクロには現在の時刻が時/分/秒 というフォーマットで入る
_cplusplusはC++のソースコードをコンパイルしているときに定義される
__STDC__はC言語のソースコードをコンパイルしているときに定義される。C++のソースをコンパイルしているときにもおそらく定義される

■参考サイト
プリプロセッサ命令
http://www.cppll.jp/cppreference/preproc_details.html

[C++]エラーメッセージを取得する

▼質問
予期しないエラーでアプリケーションが終了したんだ。

そのときのエラー内容を取得したいんだ。どうしたらいいの?

▼回答
GetLastError関数とFormatMessage関数で次の様に取得できるよ。

#include
#include
#include
using namespace std;

try {
throw "Exception";
bool b;
if (b) throw 10.1;
else throw 100;
}
catch ( ... ) {
LPTSTR lpBuffer = NULL;
BOOL result = FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER FORMAT_MESSAGE_FROM_SYSTEM FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, GetLastError(), MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ),
(LPTSTR)&lpBuffer, 0, NULL );
CString str = (LPCTSTR)lpBuffer;
str.Replace( "\r\n", "" );
logprintf( "エラー番号:%d,エラー内容:%s", GetLastError(), str );
// MessageBox( NULL, lpBuffer, "Last Error Message", MB_ICONHANDMB_OK );
LocalFree( lpBuffer );
// cout << "Exception : " << e << '\n'; exit( EXIT_FAILURE );
}


■参考サイト
peslab C,C++
http://peslab.blog70.fc2.com/category5-1.html
FormatMessage 関数
http://msdn.microsoft.com/ja-jp/library/cc428939.aspx
[C/C++]なんとエラーメッセージが取得出来た

http://blogs.wankuma.com/ch3cooh/archive/2008/03/22/129144.aspx


木曜日, 6月 05, 2008

[C++]例外処理(try文)

▼質問
アプリケーションがメッセージを出して死んじゃうんだ。どう対処したらよいの?

とりあえず、途中でメッセージを出して止まらないようにしたいんだ。

▼回答
try文を使ってエラーをキャッチすればエラーで止まることは対処できると思うよ。

次の方法は、あらゆる型の例外を受け取ることができるよ。

try {
}
catch ( ... ) {
}
finally {
}

■参考サイト
例外処理
http://wisdom.sakura.ne.jp/programming/cpp/cpp35.html

月曜日, 6月 02, 2008

[C#]longのキャスト

▼質問
次の様にするとエラーになるんだ。

long型のキャストはどうしたらよいんだい?

DataRow oRow = oDataSet.Tables[0].Rows[0];
long count = (long)(oRow[0]);

▼回答
次の様にすればうまくいくぞ!

DataRow oRow = oDataSet.Tables[0].Rows[0];
long count = Convert.ToInt64(oRow[0]);


変換先の型名→Convertクラス名
int→Convert.ToInt32
uint→Convert.ToUInt32
short→Convert.ToInt16
usort→Convert.ToUInt16
long→Convert.ToInt64
ulong→Convert.ToUInt64
float→Convert.ToSingle
double→Convert.ToDouble
sbyte→Convert.ToSByte
byte→Convert.ToByte
bool→Convert.ToBoolean
char→Convert.ToBoolean
date→Convert.ToDateTime
decimal→Convert.ToDecimal
string→Convert.ToString

■参考サイト
C# の庭園(Data)
http://www.apfield.jp/csgarden/data.html

木曜日, 5月 22, 2008

[C#]構造体

▼質問
構造体(struct)で作成した変数を関数に渡してその中身をその関数の中で取得して
データを取得したいんだけど・・・うまく値がセットされないんだ!?

どうしてだい?

▼回答
C#のstructは、C/C++のstructとは違うものなんだ。

C#での構造体は、値型でクラスは、参照型なんだ。

値型とは、情報を引き渡すときに情報をコピーする方式のデータ型である。
参照型とは、データの実体がある場所を保存しておき、情報を引き渡す必要がある場合は、
データの本体をコピーせず、データの場所だけを伝えるという方式である。

構造体で参照渡しをしたい時は、関数の引数と呼び出し側の引数に「ref」を付けるんだ。

public struct ユーザ定義名
{
public int num;
public string name;
}

public void Test( ref ユーザ定義名 user )
{
user.num = 1;
user.name = "テスト";
}

ユーザ定義名 getUser;

Test( ref getUser );


■参考サイト
@IT:連載 改訂版 C#入門 第5章 C#のデータ型
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_005/cs2_005_03.html
青島のしま~Blue Islands~ : .NET Tips
http://www.takebay.net/~daigo-ao/paddlewiki.pl/title_2E4E45542054697073.html

水曜日, 5月 21, 2008

[C#]object型のキャスト

▼質問
次のプログラムで 「指定されたキャストは有効ではありません。」のエラーが出る。どうして?

string sql = "SELECT * FROM テーブル名";
OracleDataAdapter objAdapter;
objAdapter = new OracleDataAdapter(sql, objOraConn);

DataSet objOraDataSet;
objOraDataSet = new DataSet("objDataSet");

// Fill the DataSet
objAdapter.Fill(objOraDataSet, "テーブル名");

DataRow objRow = objOraDataSet.Tables[0].Rows[0];
int val = (int)objRow["フィールド名"]; ← ここでエラー

▼回答
次の2つを使い分けてやればOK?!
Convert.ToInt32(objRow["フィールド名"]);
((IConvertible)objRow["フィールド名"]).ToInt32(null);

■参考サイト
object型のキャストについて: DOBON.NETプログラミング掲示板過去ログ
http://dobon.net/vb/bbs/log3-16/9607.html

日曜日, 5月 18, 2008

[VB→C#]My.Computer.FileSystem関連

▼質問
「My.Computer.FileSystem」関連の処理をVBからC#に移植しようと思うんだが・・・。

うまくいかないんだ。

▼回答
「My.Computer.FileSystem」を「Microsoft.VisualBasic.FileIO」に変換すれば問題ないよ。

名前空間のインポートに「Microsoft.VisualBasic.FileIO」を宣言すると次のエラーになる。

「エラー 1 'FileSystem' は、'Microsoft.VisualBasic.FileIO.FileSystem' と 'Microsoft.VisualBasic.FileSystem'' 間のあいまいな参照です。 ファイルパス」

「'Microsoft.VisualBasic」と「Microsoft.VisualBasic.FileIO」は共存できないようだ。

そこで考えた。

名前空間のインポートに「using FileIO = Microsoft.VisualBasic.FileIO;」を宣言して、

「My.Computer」を「FileIO」に変換すれば問題ないことがわかった。

土曜日, 5月 17, 2008

[VB→C#]INIファイル関連(WIN32API)

▼質問
INIファイル関連の関数宣言を教えてくれ!

▼回答
サンプルを示しておくから参考にしてくれ!!

[VB]
' INIファイルから値を取得する関数の宣言
Public Declare Auto Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileString" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As StringBuilder, _
ByVal nSize As UInt32, _
ByVal lpFileName As String) As UInt32

' INIファイルから値を取得する関数の宣言
Public Declare Auto Function GetPrivateProfileInt Lib "kernel32" _
Alias "GetPrivateProfileInt" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal intDefault As Integer, _
ByVal lpFileName As String) As UInt32

' INIファイルに値を設定する関数の宣言
Public Declare Auto Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileString" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpString As String, _
ByVal lpFileName As String) As UInt32

[C#]
// INIファイルから値を取得する関数の宣言
[DllImport("kernel32.dll")]
public static extern uint GetPrivateProfileString(
string lpAppName,
string lpKeyName,
string lpDefault,
StringBuilder lpReturnedString,
uint nSize,
string lpFileName);

// INIファイルから値を取得する関数の宣言
[DllImport("kernel32.dll")]
public static extern uint GetPrivateProfileInt(
string lpAppName,
string lpKeyName,
int nDefault,
string lpFileName);

// INIファイルに値を設定する関数の宣言
[DllImport("kernel32.dll")]
public static extern uint WritePrivateProfileString(
string lpAppName,
string lpKeyName,
string lpString,
string lpFileName);

[C#]VBからの移植でのエラー

▼質問
VBからC#に移植しているんだけど。

次のコードで、次のエラーが出るんだ。どういう意味なのかな?

DataSet objDataSet = new DataSet("objDataSet");
 ~ 略 ~
DataRow objRow = objDataSetOra.Tables(0).Rows(0);

「エラー 1 'System.Data.DataSet.Tables' は 'プロパティ' ですが、'メソッド' のように使用されています。 ファイルパス」

▼回答
VBとC#で配列の文法が違うから気を付けた方がいいよ。

DataRow objRow = objDataSetOra.Tables[0].Rows[0];


▼質問
次のエラーが出るんだ。

「エラー 1 'objRow' は '変数' ですが、'メソッド' のように使用されています。 ファイルパス」

▼回答
これも、上記の回答と同じだよ。

[C#]型変換(キャスト)

▼質問
次のプログラムで

public string cnvString(double data) {
return data.ToString();
}

下記のエラーになるんだ。どうしてなんだ?

「エラー 1 メソッド グループ 'ToString' を非デリゲート型 'string' に変換することはできません。このメソッドを呼び出すことはできません。 ファイルパス」

次の様にするとエラーは出なくなるんだ。何か違う気がする・・・。

public string cnvString(double data) {
string s = data.ToString();
return s;
}

▼回答
VBやC言語で言う共通関数(値を渡して結果を返すだけの処理)のようなものならstaticを
付けてあげれば問題ないと思うよ。

public static string cnvString(double data) {
return data.ToString();
}

静的変数・静的メソッドはクラスごとに唯一つの実体を持ち、すべてのオブジェクトの間で共有される。
また、数学関数や数学定数などのインスタンスを持つ必要のない関数を定義する場合にも使う。

クラス内に処理実態とデータが含む場合はstaticにしてはいけない。

■参考サイト
静的変数・静的メソッド(C# によるプログラミング入門)
http://ufcpp.net/study/csharp/oo_static.html

金曜日, 5月 16, 2008

[C#]Oracle参照エラー

▼質問
下記のエラーが出るんだ。どうしたらいいんだ?!
「エラー 1 型または名前空間名 'Oracle' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 ファイルパス」

▼回答
ソリューション エクスプローラの参照設定から次の手順で設定するんだ。

参照設定を選択し、プロパティウィンドウ(右クリック)から「参照の追加」を選択するんだ。

「.NET」タブからコンポーネント名「Oracle.DataAccess」を選んで「OK」をクリックして終了だ。

ODP.NETのインストールとバージョンに注意してくれ!

■参考サイト
Oracle 散策
http://www.okisoft.co.jp/esc/db/ora04.html

[C#]デファイン or インクルード

▼質問
デファイン(#define)を定義するインクルードファイル(ヘッダファイル)ってないの?

▼回答
C#には、拡張子が(.h)のようなヘッダファイル(インクルード)は存在しないよ。

■参考サイト
C# 言語と .NET Framework の概要
http://msdn.microsoft.com/ja-jp/library/z1zx9t92(VS.80).aspx

[C#]C#の日付型

▼質問
C#にDate型はないの?

▼回答
Date型はないけど日付型を扱うにはSystem名前空間にあるDateTime型を使うんだ。

使用方法には、次に上げる2通りがあるぞ!

プログラムの最初で「using System;」と宣言する方法と、

プログラムの中で「System.DateTime」とする方法だ。

前者の方が、プログラムがスッキリして一般的に使われる

方法だと思うから、その方法をお勧めするよ!

木曜日, 5月 15, 2008

[C#]VBからC#への移植方法

■VBからC#への移植方法
1.「’(シングルコーテイション)」を置換で「//(ダブルスラッシュ)」にする。

2.「Imports」を「using」に変換し、行の最後に「;(セミコロン)」を付ける。

3.「Public」を「public」に「Private」を「private」に置換する。

4.「Public Class クラス名 ~ End Class」を「public class クラス名 { ~ }」にする。

5.「Public Enum 列挙名 ~ End Enum」を「public enum 列挙名 { ~ }」にし、列挙子の間を
「,(カンマ)」で区切る。

6.「Public Structure 構造体名 ~ End Structure」を「public struct 構造体名 { ~ }」にし、
メンバの型を次の様に変換する。
  Public 変数名 As Integer → public int 変数名;
  Public 変数名 As String → public string 変数名;
  Public 変数名 As Long → public long 変数名;
  Public 変数名 As Double → public double 変数名;
  Public 変数名 As Boolean → public bool 変数名;
  Public 変数名 As Date → public System.DateTime 変数名;

7.コンストラクタ「Sub New() ~ End Sub」を「public クラス名() { ~ }」にする。

8.下記の様に置換する。
  「New」 → 「new」
  「True」 → 「true」
  「False」 → 「false」
  「.ToString」 → 「.ToString()」
  「Try ~ Catch ex As Exception ~ Finally ~ End Try」 → 
「try { ~ } catch (Exception ex) {  ~ } finally { ~ }」
  ※注意:using Systemが必要!
  「GoTo」 → 「goto」
  「Nothing」 → 「null」

9.「IsDBNull」関数を下記に置き換え実装する。
public static bool IsDBNull(object data)
{
これよくなかった!
if (data == null) return true;
return false;
return Microsoft.VisualBasic.Information.IsDBNull(data);
}

10.「Format」関数を下記に置き換え実装する。
public static string Format(object data, string format)
{
これ間違えだった!
return String.Format(format, data);
return Microsoft.VisualBasic.Strings.Format(data, format);
}

11.配列宣言の型を次の様に変換する。
  「Dim val(2) As Integer」 → 「int[] val = new int[2];」

12.「Select Case 」文を次の様に変換する。

Select Case 変数名
Case 値
Case Else
End Select

switch ( 変数名 ) {
case 値:
default:
}

13.「For」文を次の様に変換する。

For i as Integer = 0 To 10
Next i

for ( int i = 0 ; i <= 10 ; i++ ) { } 14.「& _」を使った文字列の連結を「+」に変換する。 15.下記に示すものを削除し、プログラムの処理を変更する。   「On Error GoTo」 16.「Err.Number」を「Microsoft.VisualBasic.Information.Err().Number」とするか次の様にする。    ソリューション エクスプローラの参照設定から「参照の追加」より「Microsoft.VisualBasic」を    追加し、「Err.Number」を「Information.Err().Number」とする。    このやり方ではエラーの取得は駄目みたい(>_<)

17.定数宣言を次の様に変更する。
  「Public Const 定数名 As Integer = 0」 → 「public const int 定数名 = 0」

18.VB定数を次の様に変更する。
  「Chr(13)」 or 「vbCr」 → 「\r」 : キャリッジリターン文字
  「Chr(10)」 or 「vbLf」 → 「\n」 : ラインフィード文字
  「Chr(13) + Chr(10)」 or 「vbCrLf」 or 「vbNewLine」 → 「\r\n」 : キャリッジリターンとラインフィードの組合せ
  「Chr(9)」 or 「vbTab」 → 「\t」 : タブ文字
  「Chr(0)」 or 「vbNullChar」 or 「vbNullString」 → 「\0」 : 値 0 を持つ文字
  「Chr(8)」 or 「vbBack」 → 「\b」 : バックスペース文字

土曜日, 5月 10, 2008

[VB2005]コントロールを名前で探す

▼質問
コントロールを名前で探すにはどうしたらいいんだい。

▼回答
次の様にすれば直接コントロールを操作できるようになるよ。

CType(Me.Controls.Find(名前, True)(0), コントロール名)

■参考サイト
VB.NET - フォーム内のコントロールを名前で探して取得する
http://jeanne.wankuma.com/tips/vb.net/form/findcontrol.html

金曜日, 5月 09, 2008

[VB2005]別ウィンドウ(別EXE)の最前面表示

▼質問
別ウィンドウ(別EXE)で起動したアプリを最前面に表示したいんだ。どうしたらよいのか?

▼回答
次のAPIを使えばできるぞ!

API名は『BringWindowToTop』だ。

次にサンプルを示しておくから参考にしてくれ!!

'ウィンドウを最前面に表示する関数宣言
Declare Function BringWindowToTop Lib "user32.dll" Alias "BringWindowToTop" (ByVal hWnd As Int32) As Int32

'最上位フォーム設定解除
Me.TopMost = False

'プロセスを起動する.
prs = Process.Start(起動EXEパス, パラメータ)

'最上位フォーム設定
BringWindowToTop(CInt(prs.MainWindowHandle))

prs.WaitForExit()
prs.Dispose()
prs.Close()

'最上位フォーム設定
Me.TopMost = True

木曜日, 5月 01, 2008

[VBA]QueryTable

▼質問
Oracleからのデータバックアップで次のプログラムで実行しているんだが・・・。

「Selection.QueryTable.Refresh BackgroundQuery:=False」

どうやってODBCやSQL文の設定をしているかわからん!?

教えてくれ~!!

▼回答
一度「外部データの取込み」をやると、その時の操作が設定してしまい

変更ができないみたいなんだ。

だから、汎用的にやるには次のプログラムがお勧めだよ!?

With Worksheets(シート名).QueryTables.Add(Connection:="ODBC;DSN=データソース名;UID=ユーザ名;PWD=パスワード名", Destination:=Worksheets(シート名).Range("A1"))
.Sql = Array("SELECT * FROM テーブル名")
.Refresh
End With

水曜日, 4月 30, 2008

[VC2005]GetGmtTmとGetLocalTmでエラー

▼質問
GetGmtTmとGetLocalTmメソッドで次のエラーが出る。
「Debug Assertion Failed! Program: パスZZZZ.exe File: パス\atltime.inl Line: 999
Expression: _atl_condVal
For information on how your program can cause an assertion failure. see the Visual C++
documentation on asserts.
(Press Retry to debug the application)」

▼回答
インクルードやデファインを次の様にすれば上手く行くよ!
#pragma warning(disable: 4996)
#define _SECURE_ATL 0
#include
#include
#include
#include
#include
#define ATLTIME_INLINE inline
#include
#include
#define ATLCOMTIME_INLINE inline
#include

■参考サイト
A problem with ATL::CTime.GetLocalTm() - MSDN Forums
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=126206&SiteID=1
ワーニングを抑制する方法 - #pragma warning - VC++
http://www.ailight.jp/blog/sha256/archive/2005/05/04/6684.aspx