Access 97 테이블 열의 속성을 확인하기 위해 VBOX를 ADOX와 함께 사용하고 있습니다. 텍스트 필드의 경우 길이가 0 인 지 여부를 증명하는 것이 중요합니다.VB6 MS-Access에서 잘못된 'AllowZeroLength'값을 반환합니다.
문제 : 반환 값이 반전됩니다. 필드의 길이가 0 인 경우 필드가 값이 true가 아닌 경우 false가 반환됩니다.
필드가이 속성을 지원하지 않으면 false를 반환합니다.
누군가 반품이 왜 거꾸로 설명 될 수 있습니까?
Private Sub ReadTableStructure()
Dim Cat As ADOX.Catalog
Dim Tbl As ADOX.Table
Dim Col As ADOX.Column
Set Cat = New ADOX.Catalog
Set Cat.ActiveConnection = Conn
For Each Tbl In Cat.Tables
For Each Col In Tbl.Columns
bAllowZeroLength = GetDBPropertyBool(Col.Properties, "Jet OLEDB:Allow Zero Length", True)
Next Col
Next Tbl
End Sub
기능 GetDBPropertyBool : Access에서이 속성이 true
Private Function GetDBPropertyBool(Properties As ADOX.Properties, sName As String, bDefaultValue As Boolean) As Boolean
Dim Prop As ADOX.Property
Set Prop = Properties(sName)
If Prop Is Nothing Then
GetDBPropertyBool = bDefaultValue
Else
GetDBPropertyBool = Prop.Value
End If
End Function
의 VB6 개체에 거짓입니다.
편집 : 난 그냥 내가 편집 모드에서 Access에서 테이블을 열고 방금 저장있을 때, VB6에서 주어진 값이 옳다 것을 알아 냈다. 나는 아무것도 바꾸지 않고 편집하고 저장하기 만하면됩니다. 누구든지 이미이 문제가 있었습니까?
이 코드는 나에게 잘 보입니다. 아마 당신이 사용하고있는 실제 코드를 보여 주어야합니다. 네가 거기에 결함이있는 것 같아. – MicSim
이것은 실제 코드이며 코드는 정상적으로 작동합니다. 속성에있는 값을 반환합니다. 그러나 부동산의 가치는 잘못되었습니다. –
@MicSim Adden 스크린 샷 –