Office中国论坛/Access中国论坛

标题: 请教高手一个问题 [打印本页]

作者: wushenren7    时间: 2012-5-7 12:30
标题: 请教高手一个问题
表一:
张三        100
李四        300
王二        500

表二:
员工        工资

怎么样在ACCESS里将标题加进去,变成表三这样:
员工        工资
张三        100
李四        300
王二        500

因为实际数据很大,只能导入ACCESS中处理,而无法在EXCEL里直接做。请教高手![attach]49137[/attach]


作者: Henry D. Sy    时间: 2012-5-7 14:16
1. 请注意使用简单明了的标题提问
2.假设结果表名为a
  1. SELECT 表.字段1 AS 员工, 表.字段2 AS 工资 INTO a
  2. FROM 表
复制代码

作者: wushenren7    时间: 2012-5-7 14:32
Henry D. Sy 发表于 2012-5-7 14:16
1. 请注意使用简单明了的标题提问
2.假设结果表名为a

谢谢,下次注意!
其实我的实际表中有几十个字段,我更想能自动添加标题,而不是一个个手动输进去,有什么办法吗?
作者: Henry D. Sy    时间: 2012-5-7 16:52
能告诉我如何知道字段1......n所对应的关系吗
作者: Henry D. Sy    时间: 2012-5-7 17:14
  1. Private Sub Command0_Click()

  2.     Dim rs As New ADODB.Recordset
  3.     Dim cnn As New ADODB.Connection
  4.     Dim strFld() As String
  5.     Dim strSQL As String
  6.     Dim i As Integer
  7.    
  8.     Set cnn = CurrentProject.Connection
  9.    
  10.     rs.Open "标题", cnn, adOpenKeyset, adLockReadOnly
  11.    
  12.     ReDim strFld(1 To rs.Fields.Count)
  13.    
  14.     For i = 1 To rs.Fields.Count
  15.         strFld(i) = rs.Fields(i - 1)
  16.     Next
  17.    
  18.     rs.Close
  19.    
  20.     rs.Open "表", cnn, adOpenKeyset, adLockReadOnly
  21.    
  22.     For i = 1 To rs.Fields.Count
  23.         strSQL = strSQL & "字段" & i & " as " & strFld(i) & ","
  24.     Next
  25.    
  26.     If Len(strSQL) <> 0 Then
  27.         strSQL = Left(strSQL, Len(strSQL) - 1)
  28.     End If
  29.    
  30.     strSQL = "select " & strSQL & " into A from 表"
  31.    
  32.     CurrentDb.Execute strSQL
  33.    
  34.     DoCmd.OpenTable "A"
  35.    
  36.     Set rs = Nothing
  37.     Set cnn = Nothing
  38.    
  39. End Sub
复制代码
再次运行代码时,还需判断A是否存在,如有则先删除它
作者: Henry D. Sy    时间: 2012-5-7 17:35
  1. Public Function tblExist(tblName As String) As Boolean
  2.     Dim tbl As TableDef
  3.     tblExist = False
  4.     For Each tbl In CurrentDb.TableDefs
  5.         If tbl.Name = tblName Then
  6.             tblExist = True
  7.             Exit For
  8.         End If
  9.     Next
  10. End Function
复制代码
  1. Private Sub Command0_Click()
  2.     Dim rs As New ADODB.Recordset
  3.     Dim cnn As New ADODB.Connection
  4.     Dim strFld() As String
  5.     Dim strSQL As String
  6.     Dim i As Integer
  7.     Set cnn = CurrentProject.Connection
  8.     If tblExist("A") Then
  9.         DoCmd.DeleteObject acTable, "A"
  10.     End If
  11.     rs.Open "标题", cnn, adOpenKeyset, adLockReadOnly
  12.     ReDim strFld(1 To rs.Fields.Count)
  13.     For i = 1 To rs.Fields.Count
  14.         strFld(i) = rs.Fields(i - 1)
  15.     Next
  16.     rs.Close
  17.     rs.Open "表", cnn, adOpenKeyset, adLockReadOnly
  18.     For i = 1 To rs.Fields.Count
  19.         strSQL = strSQL & "字段" & i & " as " & strFld(i) & ","
  20.     Next
  21.     If Len(strSQL) <> 0 Then
  22.         strSQL = Left(strSQL, Len(strSQL) - 1)
  23.     End If
  24.     strSQL = "select " & strSQL & " into A from 表"
  25.     CurrentDb.Execute strSQL
  26.     DoCmd.OpenTable "A"
  27.     Set rs = Nothing
  28.     Set cnn = Nothing
  29. End Sub
复制代码





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3