ACCESS新手问题 在access 2003 中输入数据
我在网上下了一个数据库,基本满足需要,只有一个字段,需要将其他几个字段连接起来组成这个字段,该怎么做啊另:我想将两个字段合并,两个字段中有的没有数据,有的有数据,我现在需...
我在网上下了一个数据库,基本满足需要,只有一个字段,需要将其他几个字段连接起来组成这个字段,该怎么做啊
另:我想将两个字段合并,两个字段中有的没有数据,有的有数据,我现在需要:如两个字段都有数据的,保留长的数据并合并成一个字段;如两个字段只有一个有数据,就合并到一个字段中,该怎么做啊
access新手 有解决方案的请详细说下 急求 分会给最早一个提供解决方案的朋友
第二个问题已经解决了(解决方法是把表中小字段删掉),但第一个问题仍然没有解决啊。楼下的方法我试了一下,建立一个查询,用SQL视图,加上代码
SELECT ID,A,B,C,A & B & C AS D FROM T1
查询中是改掉了,但是表中还是没有改啊。我要的效果是要把数据表中的数据更改掉啊 展开
另:我想将两个字段合并,两个字段中有的没有数据,有的有数据,我现在需要:如两个字段都有数据的,保留长的数据并合并成一个字段;如两个字段只有一个有数据,就合并到一个字段中,该怎么做啊
access新手 有解决方案的请详细说下 急求 分会给最早一个提供解决方案的朋友
第二个问题已经解决了(解决方法是把表中小字段删掉),但第一个问题仍然没有解决啊。楼下的方法我试了一下,建立一个查询,用SQL视图,加上代码
SELECT ID,A,B,C,A & B & C AS D FROM T1
查询中是改掉了,但是表中还是没有改啊。我要的效果是要把数据表中的数据更改掉啊 展开
3个回答
展开全部
假设那张需要合并字段的表名为“T”,其中有两个字段“A”和“B”需要根据其内容合并(严格来讲应该是选择其一)存贮到新建字段“C”。
要求
1)如果“A”和“B”都有数据则取其中数据长的字段内容,保存到字段“C”;
2)如果“A”和“B”的字段长度相同,则取字段“A”的内容保存到字段“C”(关于此条是本人加给你的,因为不能排除出现两个字段的内容长度相同的情况,若这种情况发生,那么就选择“A”);
3)如果“A”和“B”其中有一个字段没有数据,则取有数据的字段内容储存到字段“C”。
4)如果“A”和“B”都没有数据,则字段“C”为空值。
解决方案:
步骤1 打开表“T”的设计视图,增加一个字段“C”数据类型为文本,保存对表的修改;
步骤2 新建一个更新查询。
选择“查询”对象后,点击新建命令,在弹出的新建查询对话框,选择设计视图,点击确定按钮,打开查询设计视图并弹出选择表对话框,请关闭选择表对话框,在工具栏选择“SQL视图”将打开的“查询设计视图”转换为“SQL视图”,复制下列SQL代码到该视图内
UPDATE T SET C = IIf(IsNull(A),B,IIf(IsNull(B),A,IIf(Len(A)>=Len(B),A,B)));
保存该查询设计,查询取名为“合并字段”
步骤3 双击刚才保存的查询名“合并字段”,系统就会根据上给出的合并要求自动将相应的数据写入新建的字段C内;
步骤4 打开表“T”检查合并后字段“C”的内容无误后,打开表“T”设计视图,删除旧字段“A”和“B”;
步骤5 删除更新查询“合并字段”(因为删除删除旧字段“A”和“B”后,如果运行查询“合并字段”会导致出错,故需删除该查询),到此合并字段大功告成。
注:请根据实际表名和字段名调整上列SQL代码(只更改T、A、B和C 其它地方不要动)该段SQL代码使用三重嵌套IIF函数来实现你的合并要求,IsNull函数判断是否为空值,Len函数判断内容的长度(字符数),这三种函数都可以运行于ACCESS内。
实际执行合并字段前,可以运行下列SQL代码,以检验实际效果
SELECT A, B, IIf(IsNull(A),B,IIf(IsNull(B),A,IIf(Len(A)>=Len(B),A,B))) AS C
FROM T;
至于你要将某张表的几个字段合并为一个字段其实很简单,运行一个SQL选择查询即可(用符号“&”将那几个需要合并的字段连接起来就行了,如含有非文本字段数据库引擎将其转换为文本类型来处理),如非必须的话,不需要实际合并那几个字段。以下举例:
表“T1”
ID A B C
1 中国 广州 3
2 中国 上海 5
3 美国 加州 6
4 伦敦
运行下列SQL代码:
SELECT ID,A,B,C,A & B & C AS D FROM T1
得到结果为
ID A B C D
1 中国 广州 3 中国广州3
2 中国 上海 5 中国上海5
3 美国 加州 6 美国加州6
4 伦敦 伦敦
要求
1)如果“A”和“B”都有数据则取其中数据长的字段内容,保存到字段“C”;
2)如果“A”和“B”的字段长度相同,则取字段“A”的内容保存到字段“C”(关于此条是本人加给你的,因为不能排除出现两个字段的内容长度相同的情况,若这种情况发生,那么就选择“A”);
3)如果“A”和“B”其中有一个字段没有数据,则取有数据的字段内容储存到字段“C”。
4)如果“A”和“B”都没有数据,则字段“C”为空值。
解决方案:
步骤1 打开表“T”的设计视图,增加一个字段“C”数据类型为文本,保存对表的修改;
步骤2 新建一个更新查询。
选择“查询”对象后,点击新建命令,在弹出的新建查询对话框,选择设计视图,点击确定按钮,打开查询设计视图并弹出选择表对话框,请关闭选择表对话框,在工具栏选择“SQL视图”将打开的“查询设计视图”转换为“SQL视图”,复制下列SQL代码到该视图内
UPDATE T SET C = IIf(IsNull(A),B,IIf(IsNull(B),A,IIf(Len(A)>=Len(B),A,B)));
保存该查询设计,查询取名为“合并字段”
步骤3 双击刚才保存的查询名“合并字段”,系统就会根据上给出的合并要求自动将相应的数据写入新建的字段C内;
步骤4 打开表“T”检查合并后字段“C”的内容无误后,打开表“T”设计视图,删除旧字段“A”和“B”;
步骤5 删除更新查询“合并字段”(因为删除删除旧字段“A”和“B”后,如果运行查询“合并字段”会导致出错,故需删除该查询),到此合并字段大功告成。
注:请根据实际表名和字段名调整上列SQL代码(只更改T、A、B和C 其它地方不要动)该段SQL代码使用三重嵌套IIF函数来实现你的合并要求,IsNull函数判断是否为空值,Len函数判断内容的长度(字符数),这三种函数都可以运行于ACCESS内。
实际执行合并字段前,可以运行下列SQL代码,以检验实际效果
SELECT A, B, IIf(IsNull(A),B,IIf(IsNull(B),A,IIf(Len(A)>=Len(B),A,B))) AS C
FROM T;
至于你要将某张表的几个字段合并为一个字段其实很简单,运行一个SQL选择查询即可(用符号“&”将那几个需要合并的字段连接起来就行了,如含有非文本字段数据库引擎将其转换为文本类型来处理),如非必须的话,不需要实际合并那几个字段。以下举例:
表“T1”
ID A B C
1 中国 广州 3
2 中国 上海 5
3 美国 加州 6
4 伦敦
运行下列SQL代码:
SELECT ID,A,B,C,A & B & C AS D FROM T1
得到结果为
ID A B C D
1 中国 广州 3 中国广州3
2 中国 上海 5 中国上海5
3 美国 加州 6 美国加州6
4 伦敦 伦敦
追问
第二个问题已经解决了(解决方法是把表中小字段删掉),但第一个问题仍然没有解决啊。楼下的方法我试了一下,建立一个查询,用SQL视图,加上代码
SELECT ID,A,B,C,A & B & C AS D FROM T1
查询中是改掉了,但是表中还是没有改啊。我要的效果是要把数据表中的数据更改掉啊
追答
可能因为你的有关概念比较混乱或者你并没有认真阅读我的答案,感到有一点点遗憾。
“选择查询”只是从数据表中检索出需要的数据或基于表中的数据计算统计出各种特定结果,以供使用,它实际上并不不会改变原始表中的数据。如果要像你追问中所要求的那样改变数据表中的数据,那么就需要运行一个“更新查询”,具体做法如下:
1)修改表“T1”,增加一个文本类型字段“D”,字段的大小要足够容纳合并后的内容
2)将下列SQL代码保存为一个名叫“合并ABC”的查询,因为这个查询使用UPDATE操作符编写的,那么它自然就是一个“更新查询”,请留意“选择查询”和“更新查询”的图标是不相同的
UPDATE T1 SET D= A & B & C
3) 在查询对象内,双击上面第2)步保存的名为“合并ABC”的查询(即运行该查询),系统就会立即将那三个字段合并存储于字段“D”内。
4)打开表“T1”,你就会发现字段“D”所存储的数据就是字段“A”,“B”,“C”的合并值。
在这里顺便给你一些有用的提示:
作为一个数据库初学者,很自然就会想到将对原表的各种计算结果返回到原表中,但是这种做法恰恰是初学者们常犯的错误之一,并不可取!你要知道数据表中的数据在实际应用中是不断变化的。举上面例子,如果字段“A”进行了修改,那么你就必须同时修改合并字段“D”否则数据的正确性就会出问题,很显然在数据表中存在这类合并计算字段会大大增加维护数据表的复杂性。对于原始数据表实施统计、分类、计算、检索特定的内容等行为是数据库管理系统的拿手好戏,使用“选择查询”就行了,完全没必要将这类东西实际返回到原始表中,随着学习的深入相信你会逐渐认识到其中的奥秘和要诀。
展开全部
你可以用Sql创建一个新的表。
Select A = Case When datalength(B)>datalength(C) Then B Else C End
Into AA
From BBBBBB
保留长的数据并合并成一个字段---------既然保留长的了,这个时候不叫合并。意思有点不明确。
我给你写的是保留长的写法。有别的说法你再追问。
Select A = Case When datalength(B)>datalength(C) Then B Else C End
Into AA
From BBBBBB
保留长的数据并合并成一个字段---------既然保留长的了,这个时候不叫合并。意思有点不明确。
我给你写的是保留长的写法。有别的说法你再追问。
追问
sql一点也不会啊
追答
你在Access里面找到执行Sql区域执行上述Sql试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能说一下你的数据库那些字段儿,数据是什么格式的吗?比如说文本?数字?什么的
另外还要问一句,你为什么要合并?在实际应用中没有多大意义!
回答你的那个组合“字段”吧,从你说的“连起来”,应该是个文本字段,那么你做一个查询,然后再建一个表达式 字段儿,对那些字段进行“计算”就可以了!
说得更详细的话,会给你准确的回答!
另外还要问一句,你为什么要合并?在实际应用中没有多大意义!
回答你的那个组合“字段”吧,从你说的“连起来”,应该是个文本字段,那么你做一个查询,然后再建一个表达式 字段儿,对那些字段进行“计算”就可以了!
说得更详细的话,会给你准确的回答!
追问
数据库中的字段嘛 有文本有数字。因为数据库格式需要转换嘛,为了保证格式的一致性,所以要进行字段的合并,合并时数字也要看做文本。数据库中有很多表,每个都要进行字段的合并。希望讲的详细点。
追答
合并字段,数字与文本合并在一起?一个里边文本同一个数字合并在一起 这个字段儿 不知道还有什么意义?并且你提到,有长 短 比较不知道 一个 文本里边 如果是 文字的话 你这样的取舍有什么意义?
所以假设你的文本字段里是文本格式的“数字”,要与数字字段里的数字合并连接在一起,再放在一个新字段里!如果是
单纯地比较大小,用IIF()函数语句 建立你那个新字段儿的表达式,两个字段连接起来使用"&" 运算符 就可以了!
你的实际情况,还是没有叙述清楚!好运!
看这位的追问,查询后改数据表要么新建一个表 要么 更新原来的表 这个是起码的常识啊!哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询