Erro on VB "Expecting an existing scalar var"



我试图用vb做一个函数。此函数用于收集报表的数据。遵循以下示例:

Public Function HeaderData() As String
Dim dados As String
dados = ""  
If Not(frm.FormQuery.FieldByName("A").AsString  = "S" And _
     frm.FormQuery.FieldByName("B").AsString  = "S" And _
     frm.FormQuery.FieldByName("C").AsString  = "S" And _
     frm.FormQuery.FieldByName("D").AsString  = "S") Then
dados = dados + "Type: "
If frm.FormQuery.FieldByName(A).AsString = "S" Then
  dados = dados + "A"
End If
If frm.FormQuery.FieldByName(B).AsString = "S" Then
  If frm.FormQuery.FieldByName(A).AsString = "S" Then
    dados = dados + ", "
  End If
  dados = dados + "B"
End If
If frm.FormQuery.FieldByName(C).AsString = "S" Then
  If frm.FormQuery.FieldByName(A).AsString = "S" Or _
     frm.FormQuery.FieldByName(B).AsString = "S" Then
     dados = dados + ", "
  End If
  dados = dados + "C"
End If
 If frm.FormQuery.FieldByName(D).AsString = "S" Then
  If frm.FormQuery.FieldByName(A).AsString = "S" Or _
     frm.FormQuery.FieldByName(B).AsString = "S" Or _
     frm.FormQuery.FieldByName(C).AsString = "S" Then
     dados = dados + ", "
  End If
  dados = dados + "D"
End If
dados =  dados + "; "

此函数会导致错误:需要现有的标量变量。

我用相同的目的,类似的代码做了其他函数,使用相同的变量来收集数据(dados),并且没有导致错误。可能会发生什么?

你的逻辑没有多大意义。我强烈建议你只写几行并调试。确保一切正常,而不是多写几行。一开始写很多东西会引起麻烦。

    Dim possibleFields As String() = {"A", "B", "C", "D"}
    Dim foundFields As New List(Of String)
    Dim dados As String = ""
    For Each field As String In possibleFields
        If frm.FormQuery.FieldByName(field).AsString = "S" Then
            foundFields.Add(field)
        End If
    Next
    If foundFields.Count > 0 Then
        dados = String.Format("Type: {0}; ", String.Join(", ", foundFields.ToArray()))
    End If

最新更新