你好 ,请问 vb + ado +sql 如何判断 表A 内 是否存在字段 abc 呢 ?

解决方案 »

  1.   


    Public Function IsExistField(TableName As String, FieldName As String) As Boolean
           On Error GoTo err1
           Dim SQL As String
           
           SQL = "SELECT " & FieldName & " FROM " & TableName
           Conn.execute SQL, , adcmdtext
           IsExistField = True
           Exit Function
    err1:
           Err.Clear
           IsExistField = False
    End Function
      

  2.   

    Dim rst As ADODB.Recordset
        Dim i As Long
        Set rst = conn.Execute(str_sql)
        For i = 0 To rst.Fields.Count - 1
            if rst.Fields(i).name="abc" then exit for
        Next
      

  3.   

    flyingZFX(★我飞★我飞★我飞呀飞★) 的方法比较好。恰当的使用错误处理。
      

  4.   

    Set rs = CreateObject("ADODB.Recordset")
    SQL = "select 列名 from A where 列名='abc'"
    rs.open SQL, conn, 1, 3
    If Not rs.EOF Then
    '你的代码
    Else
    '你的代码
    End If
      

  5.   

    加道题   为什么 我 以下写的 会有 语法错误呢
    UPDATE ybtp200412, yb200412
    SET yb200412.cql = ybtp200412.cql
    WHERE ybtp200412.no = yb200412.no
      

  6.   

    UPDATE yb200412 a
    SET a.cql = dbo.ybtp200412.cql
    WHERE  a.no=dbo.ybtp200412.no
      

  7.   

    UPDATE ybtp200412, yb200412
    SET yb200412.cql = ybtp200412.cql
    WHERE ybtp200412.no = yb200412.no
      

  8.   

    还是 有问题 提示语法错误在 第1 行 ,处  UPDATE ybtp200412, yb200412
      

  9.   

    UPDATE ybtp200412, yb200412
    不要样写UPDATE yb200412 a
    SET a.cql = dbo.ybtp200412.cql
    WHERE  a.no=dbo.ybtp200412.no
      

  10.   

    UPDATE yb200412 a
    SET a.cql = dbo.ybtp200412.cql
    WHERE a.no = dbo.ybtp200412.no现在 俺就这样子执行了,它 提示  a 附近有 语法错误! 郁闷
      

  11.   

    UPDATE yb200412 
    SET yb200412.cql = (select cql from ybtp200412 where cql=yb200412.cql)
    WHERE yb200412.no = (select no from ybtp200412 where no=yb200412.no)
      

  12.   

    错了
    UPDATE yb200412 
    SET yb200412.cql = (select cql from ybtp200412 where no=yb200412.no)
    WHERE yb200412.no = (select no from ybtp200412 where no=yb200412.no)
      

  13.   

    update ybtp200412 set yb200412.cql=(select ybtp200412.cpl from c1,c2 where ybtp200412.no=ybp200412.no)
      

  14.   

    还是有问题,在多行记录时出现错误,看来必须用游标了
    试下这个:
    表c1和C2种都是 ID,name 2个字段declare @id int,@name char(10)
    DECLARE aa CURSOR FOR
    SELECT * FROM c1
    OPEN aa
    FETCH NEXT FROM aa into @id,@name
    WHILE @@FETCH_STATUS = 0
    begin 
    declare @newname char(16)
    set @newname=NULL
             select @newname=c2.name from c2 where c2.id=@id
    print @newname
    if (not @newname is null)
    begin
    update c1 set c1.name=@newname where C1.id=@id
        end
    FETCH NEXT FROM aa into @id,@name
    end
    close aa
    DEALLOCATE  aa
    go
      

  15.   

    你说得不清楚吗,字段ABC是字段名,还是值
      

  16.   

    select count(*) from syscolumns, sysobjects  
    where sysobjects.name='表名' and sysobjects.id=syscolumns.id ok le