3

「Listivew.Tag プロパティが何もない」かどうかを確認しようとしています。

エラーを回避するための最初のチェックとして、すべてのシナリオで普遍的に「Is Nothing」チェックを行っていました

誰かがVB 6でそれを行う方法を説明できますか?

 If Not .lvwLocation.Tag Is Nothing Then
    'COMPANY
    str = str & IIf(Len(.lvwLocation.Tag) > 0, " and u.location_id in " & .lvwLocation.Tag, "")
End If

エラー「type-mismatch」を与える

4

2 に答える 2

9

NothingObject変数の有効な値でIsあり、オブジェクト ポインターを比較する方法です。

しかし、VB6 コントロールの Tag プロパティは文字列であり、VB6 の文字列型はオブジェクトではありません。プリミティブ型です。これは、文字列変数を割り当てることができないことを意味しNothingます。その可能な最も空の値は空の文字列です。(また、オブジェクト変数に文字列値を割り当てることはできません。)文字列には、他のプリミティブ (数値/ブール/日付) 型に使用するのと同じ等値/不等値/比較演算子を使用するだけです。

If .lvwLocation.Tag <> "" Then ...
于 2011-12-26T09:08:00.543 に答える
2

VB6 ではIs Nothing、比較に使用したように見えますがObjects、私が試した他のすべてのデータ型はそうではありませんでした。.NetNothingでは、任意のデータ型のデフォルト値を表し、期待どおりに機能します。

Dim test as Object

If Not test Is Nothing Then
   /////  
End If

TagVB6の th プロパティのデータ型は文字列です。私は次のようなものを使用します:

If .lvwLocation.Tag <> "" Then      
    /////
End If
于 2011-12-26T07:29:38.463 に答える